mybatis实现MySQL数据库的增删改查之二
这里直接附上代码:
1 package com.qijian.pojo; 2 3 import org.apache.ibatis.type.Alias; 4 5 6 public class User { 7 private int id; 8 private String name; 9 private String pwd; 10 11 @Override 12 public String toString() { 13 return "User{" + 14 "id=" + id + 15 ", name='" + name + '\'' + 16 ", pwd='" + pwd + '\'' + 17 '}'; 18 } 19 20 public User(int id, String name, String pwd) { 21 this.id = id; 22 this.name = name; 23 this.pwd = pwd; 24 } 25 26 public int getId() { 27 return id; 28 } 29 30 public void setId(int id) { 31 this.id = id; 32 } 33 34 public String getName() { 35 return name; 36 } 37 38 public void setName(String name) { 39 this.name = name; 40 } 41 42 public String getPwd() { 43 return pwd; 44 } 45 46 public void setPwd(String pwd) { 47 this.pwd = pwd; 48 } 49 }
1 package com.qijian.utils; 2 3 import org.apache.ibatis.io.Resources; 4 import org.apache.ibatis.session.SqlSession; 5 import org.apache.ibatis.session.SqlSessionFactory; 6 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 7 8 import java.io.IOException; 9 import java.io.InputStream; 10 11 public class MyBatisUtils { 12 private static SqlSessionFactory sqlSessionFactory; 13 private static String resource = "mybatis-Config.xml"; 14 private static InputStream inputStream; 15 16 static { 17 18 //使用mybatis的第一步:获取 SqlSessionFactory对象 19 try { 20 inputStream = Resources.getResourceAsStream(resource); 21 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 22 } catch (IOException e) { 23 e.printStackTrace(); 24 } 25 } 26 //既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。 27 // SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。 28 public static SqlSession getSqlSession() throws IOException { 29 return sqlSessionFactory.openSession(); 30 } 31 32 }
1 package com.qijian.dao; 2 3 import com.qijian.pojo.User; 4 5 import java.util.List; 6 7 public interface UserMapper { 8 9 //查询全部用户 10 List<User> getUserList(); 11 12 //根据id查询用户 13 User getUserById(int id); 14 15 //insert一个用户 16 int addUser(User user); 17 18 //修改一个用户 19 int updateUser(User user); 20 21 //删除一个用户 22 int deleteUser(int id); 23 24 }
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 5 <mapper namespace="com.qijian.dao.UserMapper"> 6 <select id="getUserList" resultType="User"> 7 select * from mybatis.user 8 </select> 9 10 <select id="getUserById" parameterType="int" resultType="com.qijian.pojo.User"> 11 select *from mybatis.user where id = #{id}; 12 </select> 13 14 <insert id="addUser" parameterType="com.qijian.pojo.User"> 15 insert into mybatis.user(id,name,pwd) values(#{id},#{name},#{pwd}); 16 </insert> 17 18 19 <update id="updateUser" parameterType="com.qijian.pojo.User"> 20 update mybatis.user 21 set name = #{name},pwd = #{pwd} 22 where id=#{id}; 23 </update> 24 25 <delete id="deleteUser" parameterType="int"> 26 delete from mybatis.user where id=#{id}; 27 </delete> 28 29 </mapper>
db.properties文件如下
1 driver = com.mysql.jdbc.Driver 2 url = jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8 3 username = root 4 password = root
mybatis-config.xml文件如下:
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 5 6 <configuration> 7 8 <!--如果一个属性在不只一个地方进行了配置,那么,MyBatis 将按照下面的顺序来加载: 9 首先读取在 properties 元素体内指定的属性。 10 然后根据 properties 元素中的 resource 属性读取类路径下属性文件,或根据 url 属性指定的路径读取属性文件,并覆盖之前读取过的同名属性。 11 最后读取作为方法参数传递的属性,并覆盖之前读取过的同名属性。 12 --> 13 <properties resource="db.properties"> 14 <property name="password" value="1234"/> 15 </properties> 16 17 <!-- 这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为--> 18 <!-- <settings>--> 19 <!-- <setting name="" value=""/>--> 20 <!-- </settings>--> 21 22 <!-- 类型别名可为 Java 类型设置一个缩写名字。 23 它仅用于 XML 配置,意在降低冗余的全限定类名书写 24 当这样配置时,User 可以用在任何使用 com.qijian.pojo.User 的地方 25 --> 26 <!-- 每一个在包 com.qijian.pojo 中的 Java Bean, 27 在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。 28 比如 com.qijian.pojo.User 的别名为 user; 29 若有注解,则别名为其注解值 30 @Alias(”别名")--> 31 <typeAliases> 32 <typeAlias alias="User" type="com.qijian.pojo.User"/> 33 <package name="com.qijian.pojo.User"/> 34 </typeAliases> 35 36 <environments default="development"> 37 <environment id="development"> 38 <transactionManager type="JDBC"/> 39 <dataSource type="POOLED"> 40 <property name="driver" value="${driver}"/> 41 <property name="url" value="${url}"/> 42 <property name="username" value="${username}"/> 43 <property name="password" value="${password}"/> 44 </dataSource> 45 </environment> 46 47 </environments> 48 49 <!-- 每一个Mapper.xml都需要在Mybatis核心配置文件中注册--> 50 <!-- 注意: 51 使用class绑定注册时,接口和它的Mapper配置文件必须同名 52 使用class绑定注册时,接口和它的Mapper配置文件必须在同一个包下--> 53 <mappers> 54 <mapper resource="com/qijian/dao/UserMapper.xml"/> 55 <!-- <mapper class="com.qijian.dao.UserMapper"/>--> 56 </mappers> 57 58 </configuration>
1 package com.qijian.dao; 2 3 import com.qijian.pojo.User; 4 import com.qijian.utils.MyBatisUtils; 5 import org.apache.ibatis.session.SqlSession; 6 import org.junit.Test; 7 8 import java.io.IOException; 9 import java.util.List; 10 11 public class UserDaoTest { 12 @Test 13 public void testGetUserLike() throws IOException { 14 SqlSession sqlSession = MyBatisUtils.getSqlSession(); 15 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 16 List<User> UserList = userMapper.getUserList(); 17 18 for (User user:UserList) { 19 System.out.println(user); 20 } 21 22 } 23 24 }
结构:
注意:
该项目的改进主要是针对mybatis-config.xml文件
版权声明:本文为cnqijian原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。