mybatis入门(二)——mybatis开发项目五部曲
来源:互联网 发布:js浏览器后退刷新页面 编辑:程序博客网 时间:2024/05/22 14:57
工程结构如下:
一:配置mybatis环境
1.java jdk
2.eclipse
3.mysql
3.mybatis的jar包(依赖包lib文件夹下,核心jar要引入项目)
二:创建po类(简单User对象)
package cn.itcast.mybatis.po;import java.util.Date;/** * * @author cyl * */public class User { //属性名和数据库表的字段对应 private int id; private String username;// 用户姓名 private String sex;// 性别 private Date birthday;// 生日 private String address;// 地址 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; }}
三:创建mapper文件(User.xml)
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- mapper代码,namespace有特殊的意义 --><mapper namespace="test"> <!--根据id查询用户--> <select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User"> SELECT * FROM user WHERE id=#{value} </select> <!--模糊查询--> <select id="findUserByName" parameterType="java.lang.String" resultType="cn.itcast.mybatis.po.User"> select * from user where username like '%${value}%' </select> <!-- 添加数据 --> <insert id="insertUser" parameterType="cn.itcast.mybatis.po.User"> <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer"> select LAST_INSERT_ID() </selectKey> insert into user(username,birthday,sex,address)value(#{username},#{birthday},#{sex},#{address}) </insert> <!-- 删除数据 --> <delete id="deleteUser" parameterType="java.lang.Integer"> delete from user where id=#{id} </delete> <!-- 更新数据 --> <update id="updateUser" parameterType="cn.itcast.mybatis.po.User"> update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id} </update></mapper>
四:配置mybatis核心配置文件:SqlMapConfig.xml,并加载mapper文件
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <!-- 加载属性文件 --> <properties resource="db.properties"> <!--properties中还可以配置一些属性名和属性值 --> <!-- <property name="jdbc.driver" value=""/> --> </properties> <!-- 全局配置参数,需要时再设置 --> <!-- <settings> </settings> --> <!-- 别名定义 --> <typeAliases> <!-- 针对单个别名定义 type:类型的路径 alias:别名 --> <!-- <typeAlias type="cn.itcast.mybatis.po.User" alias="user"/> --> <!-- 批量别名定义 指定包名,mybatis自动扫描包中的po类,自动定义别名,别名就是类名(首字母大写或小写都可以) --> <package name="cn.itcast.mybatis.po"/> </typeAliases> <!-- 和spring整合后 environments配置将废除--> <environments default="development"> <environment id="development"> <!-- 使用jdbc事务管理,事务控制由mybatis--> <transactionManager type="JDBC" /> <!-- 数据库连接池,由mybatis管理--> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> </configuration> <!-- 加载 映射文件 --> <mappers> <mapper resource="sqlmap/User.xml"/> <!--通过resource方法一次加载一个映射文件 --> <!-- <mapper resource="mapper/UserMapper.xml"/> --> <!-- 通过mapper接口加载单个 映射文件 遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 中 上边规范的前提是:使用的是mapper代理方法 --> <!-- <mapper class="cn.itcast.mybatis.mapper.UserMapper"/> --> </mappers>
五:程序执行
public class MybatisFirst { /** * 根据id查询user */ @Test public void findUserByIdTest() throws IOException{ String resource="SqlMapConfig.xml"; InputStream inputStream=Resources.getResourceAsStream(resource); //创建会话工厂 SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession=sqlSessionFactory.openSession(); //通过的sqlsession操作数据库 //第一个参数是映射文件中statement的id,等于namesapce+"."+statement的id //第二个参数:输出参数 User user=sqlSession.selectOne("test.findUserById", 1); System.out.println(user); //释放资源; sqlSession.close(); } /** * 模糊查询 */ @Test public void findUserByName() throws IOException{ String resource="SqlMapConfig.xml"; InputStream inputStream=Resources.getResourceAsStream(resource); //创建会话工厂 SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession=sqlSessionFactory.openSession(); //list中的user List<User> user=sqlSession.selectList("test.findUserByName" ,"小明"); System.out.println(user); sqlSession.close(); } /** * 添加用户 */ @Test public void insertUserTest() throws IOException{ String resource="SqlMapConfig.xml"; InputStream inputStream=Resources.getResourceAsStream(resource); //创建会话工厂 SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession=sqlSessionFactory.openSession(); User user=new User(); user.setUsername("chang"); user.setBirthday(new Date()); user.setSex("女"); user.setAddress("河南省"); sqlSession.insert("test.insertUser", user); sqlSession.commit(); System.out.println(user.getId()); sqlSession.close(); } /** * 根据id更新user */ @Test public void updateUserTest() throws IOException{ String resource="SqlMapConfig.xml"; InputStream inputStream=Resources.getResourceAsStream(resource); //创建会话工厂 SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession=sqlSessionFactory.openSession(); User user=new User(); user.setId(29); user.setUsername("jin"); user.setBirthday(new Date()); user.setSex("女"); user.setAddress("河南省"); sqlSession.insert("test.updateUser", user); sqlSession.commit(); sqlSession.close(); }}
阅读全文
0 0
- mybatis入门(二)——mybatis开发项目五部曲
- MyBatis入门(二)
- mybatis-入门(二)
- MyBatis入门(二)
- myBatis入门(二)-mybatis工作流程
- 【MyBatis】mybatis快速入门(二)
- 【Mybatis】深入浅出Mybatis(二)——Mybatis的框架
- Mybatis基础入门之(二)——环境搭建
- Mybatis入门实例(二)
- mybatis入门系列(二)
- mybatis入门实例(二)
- Mybatis入门学习(二)
- MyBatis (二) 入门程序
- mybatis快速入门(二)
- MyBatis学习总结(1)——MyBatis快速入门
- Mybatis快速入门——Mybatis学习总结(一)
- mybatis入门(一)——初试mybatis
- MyBatis(一)——mybatis入门
- hdu1372 Knight Moves
- 关于model的运用
- Android 图片加载框架最全解析(五),Glide强大的图片变换功能
- ceph工作原理及安装
- jenkins自动部署tomcat脚本
- mybatis入门(二)——mybatis开发项目五部曲
- 浅谈数据库索引
- opencv开发笔记(十四):创建包围轮廓的矩形边界
- springmvc常用注解标签详解
- 【个人笔记重点,不作为参考】主题:provisional headers are shown 原因分析
- mui.fire传值首次无效
- java学习内容
- Java单例的由浅入深----懒汉式的升级(1 双重检查)
- Jzoj3223 Ede的新背包问题