MyBatis的配置以及crud操作
2016-07-22 13:37
941 查看
导入mybatis核心包,加入依赖包,mysql驱动包
1.加入日志配置文件Log4j.properties,放在src下(需要导入log4j-1.2.17.jar)
### \u8BBE\u7F6E### info error debug log4j.rootLogger = debug,stdout,D,E ### \u8F93\u51FA\u4FE1\u606F\u5230\u63A7\u5236\u62AC ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
2.SqlMapConfig.xml,配置mybatis的运行环境,数据源,事物等,放在src下。(需要导入mybatis-3.2.8.jar)
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql:///house" /> <property name="username" value="root" /> <property name="password" value="123456" /> </dataSource> </environment> </environments> <mappers> <mapper resource="com/zucc/dao/UserMapper.xml" /> </mappers> </configuration><span style="font-size:18px;"> </span>
3.创建数据库
4.编写User.java实体类
package com.zucc.model; public class User { private int id; private String username; private String password; private String phone; 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 getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } @Override public String toString() { return "User [id=" + id + ", username=" + username + ", password=" + password + ", phone=" + phone + "]"; } }
5.编写User.xml(根据用户id(主键)查询用户信息)
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namspace命名空间,作用是对sql进行分类管理,sql隔离 --> <mapper namespace="UserMapper"> <!-- 在映射文件中可以配置很多sql语句 --> <!-- 通过select标签执行数据库查询,id是标识映射文件中的sql,parameterType是指定输入参数的类型,这里是Int --> <!-- #{}相当于jdbc中的占位符,名字随意 --> <!-- resultType是指定sql输出结果所映射的java对象类型,select指定resultType表示将单条记录映射成java对象 --> <select id="findUserById" parameterType="int" resultType="com.zucc.model.User"> select * from User where id = #{id} </select> </mapper>
6.需要在sqlMapConfig.xml中配置User.xml
<span style="white-space:pre"> </span><mappers> <mapper resource="com/zucc/dao/UserMapper.xml" /> </mappers>
7.在数据库中插入一条信息
8.程序测试(可能需要导入junit-4.11.jar和hamcrest-core-1.3.jar)
package com.zucc.Test; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; import com.zucc.model.User; public class UserTest { @Test public void find() throws IOException{ //mybatis配置文件 String resource = "SqlMapConfig.xml"; //得到配置文件流 InputStream is = Resources.getResourceAsStream(resource); //创建会话工厂,传入mybatis的配置文件信息 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); //通过工厂得到SqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); //通过SqlSession操作数据库 //第一个参数:映射文件中statement的id,等于"namespace.statment的id" //第二个参数:指定和映射文件中所匹配的parameterType类型的参数 //SqlSession.selectOne结果是与映射文件中所匹配的resultType类型的对象 User user = sqlSession.selectOne("UserMapper.findUserById", 1); System.out.println(user.toString()); sqlSession.close(); } }运行结果:
9.编写User.xml,添加用户信息
<span style="white-space:pre"> </span><!-- 添加用户 <span style="white-space:pre"> </span>#{}中指定pojo的属性名,接收到pojo对象的属性值,mybatis通过ognl获取对象的属性值 <span style="white-space:pre"> </span> --> <span style="white-space:pre"> </span><insert id="addUser" parameterType="User"> <span style="white-space:pre"> </span>insert into user (username,password,telephone) values (#{username},#{password},#{phone}) <span style="white-space:pre"> </span></insert>测试类:
<span style="white-space:pre"> </span>@Test <span style="white-space:pre"> </span>public void add() throws IOException { <span style="white-space:pre"> </span>User user = new User(); <span style="white-space:pre"> </span>user.setUsername("rqq"); <span style="white-space:pre"> </span>user.setPassword("123"); <span style="white-space:pre"> </span>user.setPhone("15164897856"); <span style="white-space:pre"> </span>sqlSession.insert("UserMapper.addUser", user); <span style="white-space:pre"> </span>sqlSession.commit(); <span style="white-space:pre"> </span>}
10.编写User.xml,根据用户id(主键)修改用户信息
<span> </span><update id="updateUser" parameterType="User"> update user <set> <if test="username != null"> username = #{username}, </if> <if test="password != null"> password = #{password}, </if> <if test="phone != null"> telephone = #{phone}, </if> </set> where uid=#{id} </update>测试类:
<span style="white-space:pre"> </span>@Test <span style="white-space:pre"> </span>public void update() throws IOException { <span style="white-space:pre"> </span>User user = new User(); <span style="white-space:pre"> </span>user.setUsername("rqq"); <span style="white-space:pre"> </span>user.setPassword("111"); <span style="white-space:pre"> </span>user.setPhone("1888888888"); <span style="white-space:pre"> </span>user.setId(6); //<span style="white-space:pre"> </span>userMapper.updateUser(user); <span style="white-space:pre"> </span>sqlSession.update("UserMapper.updateUser", user); <span style="white-space:pre"> </span>sqlSession.commit(); <span style="white-space:pre"> </span>}
11.编写User.xml,根据用户id(主键)删除用户信息
<span> </span><delete id="deleteUser" parameterType="int"> <span style="white-space:pre"> </span>delete from user where uid = #{id} <span style="white-space:pre"> </span></delete>测试类:
<span> </span>@Test <span style="white-space:pre"> </span>public void delete() throws IOException { //<span style="white-space:pre"> </span>userMapper.deleteUser(6); <span style="white-space:pre"> </span>sqlSession.delete("UserMapper.deleteUser", 6); <span style="white-space:pre"> </span>sqlSession.commit(); <span style="white-space:pre"> </span>}
相关文章推荐
- 虚拟化基础架构Windows 2008篇之9-配置Windows部署服务
- [游戏资讯]《极品飞车16:亡命狂飙》配置需求公布
- 配置文件神器 typesafe conf 用法简介
- 配置文件神器 typesafe conf 用法简介
- 路由器备份配置
- 路由器的基本配置
- 路由器基础配置及传输协议
- 经典配置 Vlan篇
- 备份线路的配置
- 交换机如何配置 新手配置交换机详细教程
- 如何进行系统配置
- 路由器的配置与调试
- DOS下内存的配置
- IIS配置文件隐患
- Windows下Postgresql数据库的下载与配置方法
- redis中修改配置文件中的端口号 密码方法
- 解析如何在sqlserver代理中配置邮件会话
- MySQL数据库优化技术之配置技巧总结
- C#自定读取配置文件类实例