Mybatis框架学习(1)——单表增删改查
2017-07-25 20:41
260 查看
1.创建名为mybatis-001-hello的Maven项目,项目结构如下
2.在pom.xml中加载所需的jar包的依赖坐标
3.mybatis.xml代码如下
配置日志文件log4j2.xml,代码如下
创建实体类User.java,代码如下
创建映射接口UserMapper.java,代码如下
创建工具类MyBatisUtil.java,代码如下
创建映射文件UserMapper.xml,代码如下
创建测试类MybatisTest.java,代码如下
2.在pom.xml中加载所需的jar包的依赖坐标
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.yc</groupId> <artifactId>mybatis</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>mybatis-001-hello</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <junit.version>4.12</junit.version> <mybatis.version>3.4.1</mybatis.version> <oracle.version>12.1.0.1</oracle.version> <log4j.version>2.6.2</log4j.version> </properties> <dependencies> <!-- 单元测试包 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <!-- mybatis框架包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- oracle数据库驱动包 --> <dependency> <groupId>com.hynnet</groupId> <artifactId>oracle-driver-ojdbc6</artifactId> <version>${oracle.version}</version> <exclusions> <exclusion> <artifactId>slf4j-api</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions> </dependency> <!-- log4j日志框架jar包 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j.version}</version> </dependency> </dependencies> </project>
3.mybatis.xml代码如下
<?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="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:yc" /> <property name="username" value="mybatis26" /> <property name="password" value="a" /> </dataSource> </environment> </environments> <mappers> <mapper resource="mapper/UserMapper.xml"/> </mappers> </configuration>
配置日志文件log4j2.xml,代码如下
<?xml version="1.0" encoding="UTF-8"?> <Configuration> <Appenders> <Console name="STDOUT" target="SYSTEM_OUT"> <PatternLayout pattern="%d %-5p %C{1} (%F:%L) - %m%n"/> </Console> </Appenders> <Loggers> <Logger name="com.yc.mybatis" level="debug"/> <Logger name="org.apache.ibatis.logging.jdbc" level="debug"/> <Root level="error"> <AppenderRef ref="STDOUT"/> </Root> </Loggers> </Configuration>
创建实体类User.java,代码如下
package com.yc.mybatis.entity; public class User { private Integer id; private String uname; private String upwd; public User() { } public User(String uname, String upwd) { this.uname = uname; this.upwd = upwd; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getUpwd() { return upwd; } public void setUpwd(String upwd) { this.upwd = upwd; } @Override public String toString() { return "\nUser [id=" + id + ", uname=" + uname + ", upwd=" + upwd + "]"; } }
创建映射接口UserMapper.java,代码如下
package com.yc.mybatis.mapper; import java.util.List; import com.yc.mybatis.entity.User; public interface UserMapper { public User getUserById(Integer id); public int insertUser(User user); public int updateUser(User user); public int deleteUser(int id); public List<User> getAllUsers(); }
创建工具类MyBatisUtil.java,代码如下
package com.yc.mybatis.util; 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.apache.logging.log4j.LogManager; public class MyBatisUtil { private static SqlSessionFactory factory; static{ InputStream in=null; try { //加载类路径下的mybatis框架的配置文件 in=Resources.getResourceAsStream("mybatis.xml"); LogManager.getLogger().debug("加载类路径下的mybatis框架的配置文件成功..."); } catch (IOException e) { LogManager.getLogger().error("加载类路径下的mybatis框架的配置文件失败!!!"); } //根据加载上来的mybatis配置文件信息,构建SqlSessionFactory的对象 factory=new SqlSessionFactoryBuilder().build(in); LogManager.getLogger().debug("根据加载上来的mybatis配置文件信息,构建SqlSessionFactory的对象成功...."); } //取到数据库会话对象 public static SqlSession getSession(){ SqlSession session=null; if (factory !=null) { session= factory.openSession(); LogManager.getLogger().debug("使用SqlSessionFactory的对象,生产出SqlSession对象成功...."); } return session; } //取到数据库会话对象 public static SqlSession getAutoCommitSession(){ SqlSession session=null; if (factory !=null) { session= factory.openSession(true); LogManager.getLogger().debug("使用SqlSessionFactory的对象,生产出SqlSession对象成功...."); } return session; } }
创建映射文件UserMapper.xml,代码如下
<?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"> <!-- 命名空间与对应映射接口的全类名一致 --> <mapper namespace="com.yc.mybatis.mapper.UserMapper"> <!-- id与方法名一致 --> <select id="getUserById" parameterType="int" resultType="com.yc.mybatis.entity.User"> select * from users where id=#{id} </select> <insert id="insertUser" parameterType="com.yc.mybatis.entity.User"> insert into users values(seq_users.nextval, #{uname}, #{upwd}) </insert> <update id="updateUser" parameterType="com.yc.mybatis.entity.User"> update users set uname=#{uname}, upwd=#{upwd} where id=#{id} </update> <delete id="deleteUser" parameterType="int"> delete from users where id=#{id} </delete> <!-- resultType:返回一个对象是指对象类型,返回多个对象是指集合的泛型类型 --> <select id="getAllUsers" resultType="com.yc.mybatis.entity.User"> select * from users </select> </mapper>
创建测试类MybatisTest.java,代码如下
package com.yc.mybatis; import static org.junit.Assert.*; import java.sql.Connection; import java.util.List; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import com.yc.mybatis.entity.User; import com.yc.mybatis.mapper.UserMapper; import com.yc.mybatis.util.MyBatisUtil; public class MybatisTest { @Test public void testConn() { SqlSession session=MyBatisUtil.getSession(); //通过SqlSession对象,获得数据库连接 Connection con=session.getConnection(); assertNotNull(con); } @Test public void testSelect(){ SqlSession session=MyBatisUtil.getSession(); UserMapper userMapper=session.getMapper(UserMapper.class); User user=userMapper.getUserById(10003); System.out.println(user); assertNotNull(user); } @Test public void testInsert(){ //SqlSession session=MyBatisUtil.getSession(); SqlSession session=MyBatisUtil.getAutoCommitSession(); UserMapper userMapper=session.getMapper(UserMapper.class); User user=new User("小红","abc123"); int result=userMapper.insertUser(user); //session.commit(); assertEquals(1, result); } @Test public void testUpdate(){ //SqlSession session=MyBatisUtil.getSession(); SqlSession session=MyBatisUtil.getAutoCommitSession(); UserMapper userMapper=session.getMapper(UserMapper.class); User user=new User("小白","abc1234"); user.setId(10013); int result=userMapper.updateUser(user); //session.commit(); assertEquals(1, result); } @Test public void testDelete(){ //SqlSession session=MyBatisUtil.getSession(); SqlSession session=MyBatisUtil.getAutoCommitSession(); UserMapper userMapper=session.getMapper(UserMapper.class); int result=userMapper.deleteUser(10013); //session.commit(); assertEquals(1, result); } @Test public void testReadAll(){ SqlSession session=MyBatisUtil.getAutoCommitSession(); UserMapper userMapper=session.getMapper(UserMapper.class); List<User>users=userMapper.getAllUsers(); System.out.println(users); assertNotNull(users); } }
相关文章推荐
- MyBatis框架学习之增删改查
- 类似hibernate框架的mybatis框架学习总结
- MyBatis3框架学习(1)----mybaits初识和第一个helloworld
- JAVA学习笔记20——MyBatis框架第三章
- Dubbo+spring+springmvc+mybatis+Maven+Jetty+Mysql+Ajax多框架融合学习网址收藏
- SSM框架-Mybatis基于注解实现增删查改和多参数列表查询
- mybatis框架总体说明---Mybatis学习笔记(二)
- Mybatis学习之实现数据的增删改查(3)
- ssm框架学习---mybatis中复杂输入输出的处理
- SSM框架搭建(Spring+SpringMVC+MyBatis)与easyui集成并实现增删改查实现
- MyBatis学习 之 三、SQL语句映射文件-增删改查、参数、缓存
- MyBatis框架学习(一)-MyBatis的介绍
- 框架学习系列 mybatis 第四篇 mybatis入门程序之需求开发1
- Mybatis入门学习三:实现数据的增删改查
- Mybatis基础框架学习(五)
- springMVC+Mybatis 学习笔记-【1】Mybatis的框架原理
- 框架学习系列 mybatis 第十一篇 mapper映射文件之输入映射
- 框架学习系列 mybatis 第十三篇 mybatis 全局配置文件 二
- MyBatis框架增删改查(Oracle数据库)
- (转)MyBatis框架的学习(二)——MyBatis架构与入门