先来看结构图

包引用
mybatis-3.3.1.jar
mysql-connector-java-5.1.38-bin.jar
Mybatis配置
mybatis-config.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> <typeAliases> <typeAlias alias="TestEntity" type="com.yehun.entity.TestEntity" /> </typeAliases></configuration>1<environments default="development"> 2 <environment id="development"> 3 <transactionManager type="JDBC" /> 4 <!-- connecting to Local MySql --> 5 <dataSource type="POOLED"> 6 <property name="driver" value="com.mysql.jdbc.Driver" /> 7 <property name="url" value="jdbc:mysql://localhost:3306/yh\_blog?charset=utf-8" /> 8 <property name="username" value="root" /> 9 <property name="password" value="root" /> 10 </dataSource> 11 </environment> 12</environments> 13<mappers> 14 <mapper resource="com/yehun/mapper/TestMapper.xml" /> 15</mappers>
MyBatisConnectionFactory.java
package com.yehun.mybatis;
import java.io.FileNotFoundException; import java.io.IOException; import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisConnectionFactory {
1private static SqlSessionFactory sqlSessionFactory; 2 3static { 4 try { 5 String resource = "mybatis-config.xml"; 6 Reader reader = Resources.getResourceAsReader(resource); 7 if (sqlSessionFactory == null) { 8 sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); 9 } 10 } 11 catch (FileNotFoundException fileNotFoundException) { 12 fileNotFoundException.printStackTrace(); 13 } 14 catch (IOException iOException) { 15 iOException.printStackTrace(); 16 } 17} 18 19 20public static SqlSessionFactory getSqlSessionFactory() { 21 return sqlSessionFactory; 22}
}
TestEntity.java
package com.yehun.entity;
public class TestEntity {
1public TestEntity() { } 2public TestEntity(String name) { 3 this.Name = name; 4} 5 6public TestEntity(int id, String name) { 7 this.Id = id; 8 this.Name = name; 9} 10 11private int Id; 12private String Name; 13public int getId() { 14 return Id; 15} 16public void setId(int id) { 17 Id = id; 18} 19public String getName() { 20 return Name; 21} 22public void setName(String name) { 23 Name = name; 24}
}
TestMapper.java
package com.yehun.mapper;
import java.util.List;
import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory;
import com.yehun.entity.TestEntity;
public class TestMapper {
1private SqlSessionFactory sqlSessionFactory = null; 2 3public TestMapper(SqlSessionFactory sqlSessionFactory) { 4 this.sqlSessionFactory = sqlSessionFactory; 5} 6 7public List<TestEntity> getListAll() { 8 List<TestEntity> list = null; 9 SqlSession session = sqlSessionFactory.openSession(); 10 try { 11 list = session.selectList("TestMapper.getListAll"); 12 } finally { 13 session.close(); 14 } 15 return list; 16} 17 18public TestEntity getTest(int id) { 19 TestEntity entity = null; 20 SqlSession session = sqlSessionFactory.openSession(); 21 try { 22 entity = session.selectOne("TestMapper.getTest", id); 23 } catch (Exception e) { 24 session.close(); 25 } 26 return entity; 27} 28 29public int insertAll(TestEntity entity) { 30 int row = 0; 31 SqlSession session = sqlSessionFactory.openSession(); 32 try { 33 row = session.insert("TestMapper.insert", entity); //故意模拟了一个错误, name字段不允许重复, 插入两次自然会报错 34 row = session.insert("TestMapper.insert", entity); 35 session.commit(); 36 } catch (Exception e) { 37 session.rollback(); 38 session.close(); 39 row = 0; 40 } 41 return row; 42} 43 44public int insert(TestEntity entity) { 45 int row = 0; 46 SqlSession session = sqlSessionFactory.openSession(); 47 try { 48 row = session.insert("TestMapper.insert", entity); 49 session.commit(); 50 } catch (Exception e) { 51 session.close(); 52 } 53 return row; 54} 55 56public int update(TestEntity entity) { 57 int row = 0; 58 SqlSession session = sqlSessionFactory.openSession(); 59 try { 60 row = session.update("TestMapper.update", entity); 61 session.commit(); 62 } catch (Exception e) { 63 session.close(); 64 } 65 return row; 66} 67 68public int delete(int id) { 69 int row = 0; 70 SqlSession session = sqlSessionFactory.openSession(); 71 try { 72 row = session.delete("TestMapper.delete", id); 73 session.commit(); 74 } catch (Exception e) { 75 session.close(); 76 } 77 return row; 78}
}
TestMapper.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="TestMapper"></mapper>1<resultMap id="result" type="TestEntity"> 2 <result property="id" column="Id" /> 3 <result property="name" column="Name" /> 4</resultMap> 5 6<select id="getListAll" resultMap="result"> 7 SELECT \* FROM test; 8</select> 9 10<select id="getTest" parameterType="int" resultMap="result"> 11 SELECT \* FROM test where id=#{id}; 12</select> 13 14<insert id="insert" parameterType="TestEntity"> 15 insert into test(name) value(#{Name}) 16</insert> 17 18<update id="update" parameterType="TestEntity"> 19 update test set name=#{name} where id=#{id} 20</update> 21 22<delete id="delete" parameterType="int"> 23 delete from test where id=#{id} 24</delete>
Main.java
package com.yehun.main;
import java.util.List;
import com.yehun.entity.TestEntity; import com.yehun.mapper.TestMapper; import com.yehun.mybatis.MyBatisConnectionFactory;
public class Main {
1public static void main(String\[\] args) { 2 TestMapper mapper = new TestMapper(MyBatisConnectionFactory.getSqlSessionFactory()); 3 int row = 0; 4 logger("事务--------------------"); 5 row = mapper.insertAll(new TestEntity("FFF")); //故意模拟了一个错误 6 logger("结果: " + row); 7 logger("添加--------------------"); 8 row = mapper.insert(new TestEntity("EEE")); 9 logger("结果: " + row); 10 logger("修改--------------------"); 11 row = mapper.update(new TestEntity(1, "BBB")); 12 logger("结果: " + row); 13 logger("删除--------------------"); 14 row = mapper.delete(15); 15 logger("结果: " + row); 16 logger("------------------------"); 17 18 19 List<TestEntity> list = mapper.getListAll(); 20 if(list != null) { 21 logger("查询列表-----------------"); 22 for (TestEntity entity : list) { 23 logger("Id:\\t" + entity.getId()); 24 logger("Name:\\t" + entity.getName()); 25 } 26 logger("------------------------"); 27 } 28 29 logger("查询单条-----------------"); 30 TestEntity entity = mapper.getTest(8); 31 if(entity != null) { 32 logger("Id:\\t" + entity.getId()); 33 logger("Name:\\t" + entity.getName()); 34 } else { 35 logger("null"); 36 } 37 logger("------------------------"); 38} 39 40public static void logger(Object object) { 41 System.out.println(object); 42}
}
//结果
事务--------------------
结果: 0
添加--------------------
结果: 0
修改--------------------
结果: 1
删除--------------------
结果: 0
------------------------
查询列表-----------------
Id: 16
Name: AAA
Id: 1
Name: BBB
Id: 19
Name: EEE
Id: 8
Name: test2
------------------------
查询单条-----------------
Id: 8
Name: test2
------------------------
Demo打包下载:http://share.weiyun.com/aa6215cc1b16baf156b72d1ef658724d (密码:V25S)
如分享过期,请评论通知博主,会在看到的第一时间更新链接