zoukankan      html  css  js  c++  java
  • java:Mybatis框架1(基本配置,log4j,Junit4(单元测试))

    1.mybatis01:

      db.properties:

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/test
    username=root
    password=root

      log4j.properties:

    #Console
    log4j.appender.Console=org.apache.log4j.ConsoleAppender
    log4j.appender.Console.layout=org.apache.log4j.PatternLayout
    log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
    log4j.logger.org.apache.ibatis=DEBUG
    #log4j.rootLogger=warn,appender1  
    #log4j.appender.appender1=org.apache.log4j.ConsoleAppender  
    #log4j.appender.appender1.layout=org.apache.log4j.SimpleLayout  

      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>
    
    
    
        <!-- 加载属性文件 -->
           <properties resource="db.properties"/>
        <environments default="development">
             <environment id="development">
                 
                 <!-- 使用jdbc中的事务 -->
                <transactionManager type="JDBC"></transactionManager>         
                <!-- 配置数据源 -->
                <dataSource type="POOLED">
                     <property name="driver" value="${driver}"/>
                     <property name="url" value="${url}"/>
                     <property name="username" value="${username}"/>
                     <property name="password" value="${password}"/>
                </dataSource>
                
                
             </environment>
        </environments>
        
        
        <mappers>
            <mapper resource="cn/zzsxt/entity/TbUser.xml"/>
        </mappers>
    </configuration>  

      TbUserDao.java:

    package cn.zzsxt.dao;
    
    import java.util.List;
    
    import cn.zzsxt.entity.TbUser;
    
    public interface TbUserDao {
        public List<TbUser> findAll();
        public TbUser findUserById(Long id);
        public int addUser(TbUser user);
        public int updateUser(TbUser user);
        public int deleteUser(long id);
    }

      TbUserDaoImpl.java:

    package cn.zzsxt.dao.impl;
    
    import java.io.InputStream;
    import java.util.List;
    
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    import cn.zzsxt.dao.TbUserDao;
    import cn.zzsxt.entity.TbUser;
    
    public class TbUserDaoImpl implements TbUserDao {
    
        @Override
        public List<TbUser> findAll() {
            //加载全局配置文件
            InputStream ips = this.getClass().getResourceAsStream("/mybatis-config.xml");
            //创建SqlSessionFactory
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(ips);
            //创建SqlSession
            SqlSession sqlSession = sqlSessionFactory.openSession();
            //执行查询
            List<TbUser> list = sqlSession.selectList("user.findAll");//参数为映射文件中的statment id
            //释放资源
            sqlSession.close();
            return list;
        }
    
        @Override
        public TbUser findUserById(Long id) {
            //加载全局配置文件
            InputStream ips = this.getClass().getResourceAsStream("/mybatis-config.xml");
            //创建SqlSessionFactory
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(ips);
            //创建SqlSession
            SqlSession sqlSession = sqlSessionFactory.openSession();
            //执行查询
            TbUser user =  sqlSession.selectOne("user.findUserById",id);
            sqlSession.close();
            return user;
        }
    
        @Override
        public int addUser(TbUser user) {
            //加载全局配置文件
            InputStream ips = this.getClass().getResourceAsStream("/mybatis-config.xml");
            //创建SqlSessionFactory
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(ips);
            //创建SqlSession
            SqlSession sqlSession = sqlSessionFactory.openSession();
            //执行查询
            int count = sqlSession.insert("user.addUser", user);
            //提交事务
            sqlSession.commit();
    //        sqlSession.rollback();//回滚事务
            sqlSession.close();
            return count;
        }
    
        @Override
        public int updateUser(TbUser user) {
            //加载全局配置文件
            InputStream ips = this.getClass().getResourceAsStream("/mybatis-config.xml");
            //创建SqlSessionFactory
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(ips);
            //创建SqlSession
            SqlSession sqlSession = sqlSessionFactory.openSession();
            //执行查询
            int count = sqlSession.update("user.updateUser", user);
            //提交事务
            sqlSession.commit();
            sqlSession.close();
            return count;
        }
    
        @Override
        public int deleteUser(long id) {
            //加载全局配置文件
            InputStream ips = this.getClass().getResourceAsStream("/mybatis-config.xml");
            //创建SqlSessionFactory
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(ips);
            //创建SqlSession
            SqlSession sqlSession = sqlSessionFactory.openSession();
            //执行查询
            int count = sqlSession.update("user.deleteUser", id);
            //提交事务
            sqlSession.commit();
            sqlSession.close();
            return count;
        }
    
    }

      TbUser.java:

    package cn.zzsxt.entity;
    
    import java.io.Serializable;
    import java.util.Date;
    
    public class TbUser implements Serializable{
        private long id;
        private String username;
        private String sex;
        private Date birthday;
        private String address;
        
        public long getId() {
            return id;
        }
        public void setId(long 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;
        }
        @Override
        public String toString() {
            return "TbUser [id=" + id + ", username=" + username + ", sex=" + sex + ", birthday=" + birthday + ", address="
                    + address + "]";
        }
        
    }

      TbUser.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">
    <!-- 
    1.User.xml(原始ibatis命名),mapper代理开发的映射文件命名XxxMapper.xml
    2.namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离
    3.注意:使用mapper代理开发,namespace有特殊的作用
     -->        
    <mapper namespace="user">
        <!--在映射文件中配置很多sql语句-->
        <!--需求:通过id查询用户表的记录-->
        <!--
            1.标识映射文件中的sql,将sql语句封装到mapped statement对象中,所以称为statement的id
            2.parameterType:指定输入参数类型
            3.#{}:表示一个占位符
            4.#{id}:其中的id表示接收的输入参数,参数名称就是id,如果输入参数是简单类型,#{}中的参数名可以任意,可以为value或者其他
            5.resultType:指定sql输出结果的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象
        -->
        <!-- 查询 -->
        <select id="findAll" resultType="cn.zzsxt.entity.TbUser">
            select * from tb_user
        </select>
        
        <select id="findUserById" parameterType="java.lang.Long" resultType="cn.zzsxt.entity.TbUser">
            select * from tb_user where id=#{id}
        </select>
        
        
        <!-- 添加 -->
        <insert id="addUser" parameterType="cn.zzsxt.entity.TbUser">
            insert into tb_user(username,sex,birthday,address) values(#{username},#{sex},#{birthday},#{address})
        </insert>
        
        
        <!-- 修改 -->
        <update id="updateUser" parameterType="cn.zzsxt.entity.TbUser">
            update tb_user set username=#{username},sex=#{sex},birthday=#{birthday},address=#{address} where id=#{id}
        </update>
        
        
        <!-- 删除 -->
        <delete id="deleteUser" parameterType="java.lang.Long">
            delete from tb_user where id=#{id}
        </delete>
    </mapper>

      Test1.java:

    package cn.zzsxt.demo;
    
    import java.util.Date;
    import java.util.List;
    
    import org.junit.Test;
    
    import cn.zzsxt.dao.TbUserDao;
    import cn.zzsxt.dao.impl.TbUserDaoImpl;
    import cn.zzsxt.entity.TbUser;
    
    public class Test1 {
        
        @Test
        public void testFindAll(){
            TbUserDao tbUserDao = new TbUserDaoImpl();
            List<TbUser> list = tbUserDao.findAll();
            for (TbUser tbUser : list) {
                System.out.println(tbUser);
            }
        }
        
        @Test
        public void testFindUserById(){
            TbUserDao tbUserDao = new TbUserDaoImpl();
            TbUser user = tbUserDao.findUserById(new Long(1));
            System.out.println(user);
        }
        
        @Test
        public void testAddUser(){
            TbUserDao tbUserDao = new TbUserDaoImpl();
            TbUser user = new TbUser();
            user.setUsername("test");
            user.setSex("男");
            user.setBirthday(new Date());
            user.setAddress("北京");
            int count = tbUserDao.addUser(user);
            System.out.println(count);
        }
        
        @Test
        public void testUpdateUser(){
            TbUserDao tbUserDao = new TbUserDaoImpl();
            TbUser user = tbUserDao.findUserById(4L);
            user.setUsername("王五");
            int count =tbUserDao.updateUser(user);
            System.out.println(count);
        }
        
        @Test
        public void testDeleteUser(){
            TbUserDao tbUserDao = new TbUserDaoImpl();
            int count =tbUserDao.deleteUser(4L);
            System.out.println(count);
        }
    }
     

      TestLog4J.java:

    package cn.zzsxt.test;
    
    import org.apache.log4j.Logger;
    import org.junit.Test;
    
    public class TestLog4J {
        
        Logger logger = Logger.getLogger(TestLog4J.class.getName());
        @Test
        public void test01(){
    //        System.out.println("xxxx");
            logger.debug("debug....");
            logger.info("info....");
            logger.warn("warn....");
            logger.error("error....");
            logger.fatal("fatal....");
        }
        
        public static void main(String[] args) {
            TestLog4J test = new TestLog4J();
            test.test01();
        }
        
        
    }
  • 相关阅读:
    [leedcode 104] Maximum Depth of Binary Tree
    [leedcode 103] Binary Tree Zigzag Level Order Traversal
    [leedcode 102] Binary Tree Level Order Traversal
    [leedcode 101] Symmetric Tree
    [leedcode 100] Same Tree
    [leedcode 99] Recover Binary Search Tree
    深入理解java虚拟机---内存分配策略(十三)
    jmeter4.0 源码编译 二次开发
    jmeter源码导入eclipse并执行
    深入理解java虚拟机---垃圾回收(十一)
  • 原文地址:https://www.cnblogs.com/kuangzhisen/p/7460369.html
Copyright © 2011-2022 走看看