zoukankan      html  css  js  c++  java
  • MyBatis入门程序

    创建项目引入jar包等环境操作省略

    1、创建log4j.properties文件,并配置

    # Global logging configuration
    log4j.rootLogger=DEBUG, stdout
    # Console output...
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
    log4j.properties

    2、创建User类

    package com.hjp.po;
    
    import java.util.Date;
    
    public class User {
    
        private int id;
        private String userName;
        private String sex;
        private Date birthday;
        private String address;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getUserName() {
            return userName;
        }
    
        public void setUserName(String userName) {
            this.userName = userName;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
        public Date getBirthday() {
            return birthday;
        }
    
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    }
    User

    3、创建mybatis全局配置文件sqlMapConfig.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"></transactionManager>
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"></property>
                    <property name="url"
                              value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=utf8"></property>
                    <property name="username" value="root"></property>
                    <property name="password" value="hjp123"></property>
                </dataSource>
            </environment>
        </environments>
    </configuration>

    4、创建po映射文件

    <?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="test">
        <!--根据用户ID查询用户信息-->
        <select id="findUserById" parameterType="int" resultType="com.hjp.po.User">
            select * from user where id=#{id}
        </select>
    </mapper>

    5、将po对应的mapper文件加载到全局配置文件中(截图如下)

    6、编写测试程序

    @Test
        public void findUserById() throws IOException {
            //读取配置文件
            String resource="sqlMapConfig.xml";
            InputStream inputStream= Resources.getResourceAsStream(resource);
            //根据配置文件创建sqlSessionFactory
            SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
            //factory创建session
            SqlSession session=factory.openSession();
            //查询用户信息(加上命名空间可以确定语句唯一,如果全局就唯一,可以不价namespace)
    //        User user=session.selectOne("test.findUserById",1);
            User user=session.selectOne("findUserById",1);
            System.out.println(user);
            //关闭session
            session.close();
        }

    7、根据用户名模糊查询用户信息,在po的mapper文件中加入如下

    8、根据用户名查询用户信息代码

    @Test
        public void findUserByName() throws IOException {
            String resource="sqlMapConfig.xml";
            InputStream inputStream=Resources.getResourceAsStream(resource);
            SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
            SqlSession session=factory.openSession();
            List<User> users=session.selectList("findUserByName","小明");
            System.out.println(users);
            session.close();
        }

    9、添加用户信息,在mapper中添加如下

    10、测试代码

    @Test
        public void insertUser() throws IOException {
            String resource="sqlMapConfig.xml";
            InputStream inputStream=Resources.getResourceAsStream(resource);
            SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
            SqlSession session=factory.openSession();
            User user=new User();
            user.setUserName("宇文柳旭");
            user.setSex("1");
            user.setAddress("北京");
            user.setBirthday(new Date());
            session.insert("insertUser",user);
            session.commit();//注意commit(因为没有开启自动提交,后面讲自动提交)
            session.close();
        }

    11、自增主键返回(主键在PO对象中)

      1)mysql自增主键,mapper文件配置如下

      

      2)非自增主键返回UUID,配置如下

       

      3)Oracle数据库操作返回序列ID,配置如下

      

    12、根据用户ID删除用户,配置如下

    13、测试代码如下

    @Test
        public void deleteUser() throws IOException {
            String resource="sqlMapConfig.xml";
            InputStream inputStream=Resources.getResourceAsStream(resource);
            SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
            SqlSession session=factory.openSession();
            session.delete("deleteUser",30);
            session.commit();
            session.close();
        }

    14、根据用户ID修改用户信息,mapper配置如下

    15、测试代码如下

    @Test
        public void updateUser() throws IOException {
            String resource="sqlMapConfig.xml";
            InputStream inputStream=Resources.getResourceAsStream(resource);
            SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
            SqlSession session=factory.openSession();
            User user=new User();
            user.setId(1);
            user.setBirthday(new Date());
            user.setSex("0");
            session.update("updateUser",user);
            session.commit();
            session.close();
        }
  • 相关阅读:
    12 EF Core 私有字段的映射
    11 EF Core 表拆分
    10 EF Core 继承类关系映射
    9. EF Core数据库索引与备用键约束
    8. EF Core 外键的删除模式
    7. EF Core 导航属性配置
    C# 单例模式
    JS中将XML转为JSON对象
    MVC特性
    测试sql语句执行速度
  • 原文地址:https://www.cnblogs.com/hujiapeng/p/7073332.html
Copyright © 2011-2022 走看看