这里将的是简单的增、删、改、查等基本操作
首先创建java项目,导入相应的依赖包,这里可以参考上一篇博客
1、添加数据
在jike.book.pojo包中,新建java类
JiKeUser.java:
1 package jike.book.pojo; 2 3 public class JiKeUser { 4 private int id; 5 private String userName; 6 private String password; 7 public int getId() { 8 return id; 9 } 10 public void setId(int id) { 11 this.id = id; 12 } 13 public String getUserName() { 14 return userName; 15 } 16 public void setUserName(String userName) { 17 this.userName = userName; 18 } 19 public String getPassword() { 20 return password; 21 } 22 public void setPassword(String password) { 23 this.password = password; 24 } 25 }
在jike.book.map中有:
MyBatisConfig.xml
1 <?xml version="1.0" encoding="UTF-8" ?> 2 3 4 <!DOCTYPE configuration 5 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 6 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 7 8 <configuration> 9 10 <!-- 定义别名 ,必须放在environments之前--> 11 <typeAliases> 12 <typeAlias alias="JiKeUser" type="jike.book.pojo.JiKeUser"/> 13 </typeAliases> 14 15 <environments default="development"> 16 <environment id="development"> 17 <transactionManager type="JDBC"> 18 </transactionManager> 19 <dataSource type="POOLED"> 20 <property name="driver" value="com.mysql.jdbc.Driver"/> 21 <property name="url" value="jdbc:mysql://localhost:3306/jikebook"/> 22 <property name="username" value="root"/> 23 <property name="password" value=""/> 24 </dataSource> 25 </environment> 26 </environments> 27 28 29 30 31 <mappers> 32 <mapper resource="jike/book/map/jikeUser.xml"/> 33 </mappers> 34 35 </configuration>
jikeUser.xml
1 <?xml version="1.0" encoding="UTF-8" ?> 2 3 4 <!DOCTYPE mapper 5 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 6 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 7 8 <mapper namespace="/"> 9 10 <select id="findById" parameterType="int" resultType="jike.book.pojo.JiKeUser"> 11 select * from jikeUser where id=#{id} 12 </select> 13 14 <insert id="insertUser" parameterType="JiKeUser" statementType="PREPARED" 15 keyProperty="id" useGeneratedKeys="true"> 16 insert into JikeUser (userName,password) values(#{userName},#{password}) 17 </insert> 18 </mapper>
新建测试类:
TestUpdate.java
1 package jike.book.test; 2 3 import java.io.IOException; 4 import java.io.Reader; 5 6 import jike.book.map.InterfaceJiKeUserMap; 7 import jike.book.pojo.JiKeUser; 8 9 import org.apache.ibatis.io.Resources; 10 import org.apache.ibatis.session.SqlSession; 11 import org.apache.ibatis.session.SqlSessionFactory; 12 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 13 14 public class TestUpdate { 15 16 public static void main(String[] args) { 17 String resource = "jike/book/map/MyBatisConfig.xml"; 18 Reader reader = null; 19 SqlSession session; 20 try { 21 reader = Resources.getResourceAsReader(resource); 22 } catch (IOException e) { 23 e.printStackTrace(); 24 } 25 SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder() 26 .build(reader); 27 session = sqlMapper.openSession(); 28 try{ 29 /* 添加 */ 30 JiKeUser jku = new JiKeUser(); 31 jku.setUserName("jike001"); 32 jku.setPassword("123456"); 33 session.insert("insertUser",jku); 34 session.commit(); 35 36 }catch(Exception e){ 37 e.printStackTrace(); 38 }finally{ 39 session.close(); 40 } 41 } 42 43 }
执行java测试类即可
2、修改
修改数据和添加数据差不多,在jikeUser.xml中添加
<update id="updateUser" parameterType="JiKeUser"> update JiKeUser set userName = #{userName},password=#{password} where id=#{id} </update>
然后将测试类改为:
package jike.book.test; import java.io.IOException; import java.io.Reader; import jike.book.map.InterfaceJiKeUserMap; import jike.book.pojo.JiKeUser; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class TestUpdate { public static void main(String[] args) { String resource = "jike/book/map/MyBatisConfig.xml"; Reader reader = null; SqlSession session; try { reader = Resources.getResourceAsReader(resource); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder() .build(reader); session = sqlMapper.openSession(); try{ /* 修改 */ JiKeUser jku2 = new JiKeUser(); jku2.setUserName("jike00100"); jku2.setPassword("123"); jku2.setId(2); session.update("updateUser", jku2); session.commit(); }catch(Exception e){ e.printStackTrace(); }finally{ session.close(); } } }
即可
3、删除
删除操作稍微有些不同,首先在jike.book.map中新建一个接口
InterfaceJiKeUserMap.java,采用注解方式
1 package jike.book.map; 2 3 import org.apache.ibatis.annotations.Delete; 4 5 public interface InterfaceJiKeUserMap { 6 7 @Delete("delete from JiKeUser where id=#{id}" ) 8 public void deleteUser(Integer id); 9 10 }
在MyBatisConfig.xml中加入map映射
<mapper class="jike.book.map.InterfaceJiKeUserMap" />
然后修改测试类
1 package jike.book.test; 2 3 import java.io.IOException; 4 import java.io.Reader; 5 6 import jike.book.map.InterfaceJiKeUserMap; 7 import jike.book.pojo.JiKeUser; 8 9 import org.apache.ibatis.io.Resources; 10 import org.apache.ibatis.session.SqlSession; 11 import org.apache.ibatis.session.SqlSessionFactory; 12 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 13 14 public class TestUpdate { 15 16 public static void main(String[] args) { 17 String resource = "jike/book/map/MyBatisConfig.xml"; 18 Reader reader = null; 19 SqlSession session; 20 try { 21 reader = Resources.getResourceAsReader(resource); 22 } catch (IOException e) { 23 e.printStackTrace(); 24 } 25 SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder() 26 .build(reader); 27 session = sqlMapper.openSession(); 28 try{ 29 30 /* 删除 */ 31 InterfaceJiKeUserMap ijum = session.getMapper(InterfaceJiKeUserMap.class); 32 ijum.deleteUser(1); 33 session.commit(); 34 35 }catch(Exception e){ 36 e.printStackTrace(); 37 }finally{ 38 session.close(); 39 } 40 } 41 42 }
即可
4、查询
查询比较麻烦,分为查询一条数据和查询多条数据
4.1 查询一条语句(两种方式:利用HashMap 和 利用 JiKeUser对象)
4.1.1 利用hashmap实现
在jikeUser.xml下添加语句
<select id="loginSelect" resultType="JiKeUser" parameterType="hashmap"> select * from JiKeUser where userName=#{userName} and password=#{password} </select>
然后修改测试类
package jike.book.test; import java.io.IOException; import java.io.Reader; import java.util.HashMap; import java.util.List; import jike.book.pojo.JiKeUser; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class TestSelect { public static void main(String[] args) { String resource = "jike/book/map/MyBatisConfig.xml"; Reader reader = null; SqlSession session; try { reader = Resources.getResourceAsReader(resource); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder() .build(reader); session = sqlMapper.openSession(); try{ /* * 查询一条记录 * */ /* 利用HashMap */ HashMap<String,String> hm = new HashMap(); hm.put("userName", "jike00100"); hm.put("password", "123"); JiKeUser temp = session.selectOne("loginSelect",hm); if(temp!=null){ System.out.println("登陆成功!"); } }catch(Exception e){ e.printStackTrace(); }finally{ session.close(); } } }
4.1.2 利用 JiKeUser对象
在jikeUser.xml下添加语句
<select id="login2" resultType="JiKeUser" parameterType="JiKeUser"> select * from JiKeUser where userName=#{userName} and password=#{password} </select>
修改测试类:
package jike.book.test; import java.io.IOException; import java.io.Reader; import java.util.HashMap; import java.util.List; import jike.book.pojo.JiKeUser; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class TestSelect { public static void main(String[] args) { String resource = "jike/book/map/MyBatisConfig.xml"; Reader reader = null; SqlSession session; try { reader = Resources.getResourceAsReader(resource); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder() .build(reader); session = sqlMapper.openSession(); try{ /* * 查询一条记录 * */ /* 利用 JiKeUser对象 */ JiKeUser jku = new JiKeUser(); jku.setUserName("jike00100"); jku.setPassword("123"); JiKeUser onetemp = session.selectOne("login2",jku); if(onetemp!=null){ System.out.println("登陆成功"); } }catch(Exception e){ e.printStackTrace(); }finally{ session.close(); } } }
4.2 查询多条数据(利用resultType 和 利用resultMap)
4.2.1 利用resultType
在jikeUser.xml下添加语句
<select id="selectJiKeUserList" resultType="JiKeUser"> select * from JiKeUser </select>
修改测试类
1 package jike.book.test; 2 3 import java.io.IOException; 4 import java.io.Reader; 5 import java.util.HashMap; 6 import java.util.List; 7 8 import jike.book.pojo.JiKeUser; 9 10 import org.apache.ibatis.io.Resources; 11 import org.apache.ibatis.session.SqlSession; 12 import org.apache.ibatis.session.SqlSessionFactory; 13 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 14 15 public class TestSelect { 16 17 public static void main(String[] args) { 18 String resource = "jike/book/map/MyBatisConfig.xml"; 19 Reader reader = null; 20 SqlSession session; 21 try { 22 reader = Resources.getResourceAsReader(resource); 23 } catch (IOException e) { 24 e.printStackTrace(); 25 } 26 SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder() 27 .build(reader); 28 session = sqlMapper.openSession(); 29 try{ 30 31 /* 32 * 查询多条记录 33 * */ 34 /* 利用resultType */ 35 List<JiKeUser> ap = session.selectList("selectJiKeUserList"); 36 for(JiKeUser temp:ap){ 37 System.out.println("用户名="+temp.getUserName()+"密码="+temp.getPassword()); 38 } 39 40 41 }catch(Exception e){ 42 e.printStackTrace(); 43 }finally{ 44 session.close(); 45 } 46 } 47 }
4.2.2 利用resultMap
在jikeUser.xml下添加语句
1 <resultMap type="JiKeUser" id="JiKeUserMap"> 2 <id property="id" column="id"></id> 3 <result property="userName" column="userName"/> 4 <result property="password" column="password"/> 5 </resultMap> 6 <select id="selectUsers" resultMap="JiKeUserMap"> 7 select id,userName,password from JiKeUser 8 </select>
测试类:
package jike.book.test; import java.io.IOException; import java.io.Reader; import java.util.HashMap; import java.util.List; import jike.book.pojo.JiKeUser; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class TestSelect { public static void main(String[] args) { String resource = "jike/book/map/MyBatisConfig.xml"; Reader reader = null; SqlSession session; try { reader = Resources.getResourceAsReader(resource); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder() .build(reader); session = sqlMapper.openSession(); try{ /* * 查询多条记录 * */ /* 利用resultMap */ List<JiKeUser> ap1 = session.selectList("selectUsers"); for(JiKeUser temp:ap1){ System.out.println("用户名="+temp.getUserName()); } }catch(Exception e){ e.printStackTrace(); }finally{ session.close(); } } }