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&amp;useUnicode=true&amp;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实现MySQL数据库的增删改查之二

 

注意:

  该项目的改进主要是针对mybatis-config.xml文件

 

mybatis实现MySQL数据库的增删改查之二

上一篇:PDI(Kettle)的使用四 获取REST api数据并保存到mysql


下一篇:SQLiteHelper