mybatis与数据库连接过程

菜鸟发文 请大神多多指导

1.准被一个maven项目

2.先导入jar包

3.配置mybatis核心文件

4.把连接数据库的配置项抽离出来

5.编写实体类

6.编写接口

7.编写mapper映射文件

8.把相同SQL session 方法抽离 进行封装

9.配置打印文件log4j

10最后进行测试



1.配置所需的jar包

也就是pom文件

xml version="1.0" encoding="UTF-8"?>
xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    4.0.0

com.bdqn
    BasicDao01
    1.0-SNAPSHOT
    
    
        
        
            org.mybatis
            mybatis
            3.2.8
        
        
        
            mysql
            mysql-connector-java
            5.1.28
        
        
        
            junit
            junit
            4.10
        
        
        
            log4j
            log4j
            1.2.12
        
    
    
    
        
            
                src/main/java
                

                    **/*.xml

2.配置核心文件

取名为mybatis-config.xml

xml version="1.0" encoding="UTF-8"?>
configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">


    
    resource="database.properties">

    
        
    name="logImpl" value="LOG4J">
    
    
    
        name="com.bdqn.entity">
    
   
    default="development">
        id="development">
            
            type="JDBC">
            
            type="POOLED">
                name="driver" value="${jdbc.driver}">
                name="url" value="${jdbc.url}">
                name="username" value="${jdbc.username}">
                name="password" value="${jdbc.password}">
            

        

    

    
    
      resource="com/bdqn/dao/UserMapper.xml">
    


3.把所需要的连接数据库的配置抽离出来 

取名为 database.properties

记住 在设置密码时一定要注意 要加.jdbc什么

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


4.进行实体类的编写

我以用户的实体为例子

在这里我取名为User

public class User {
    private Integer id;
    private String userName,password,nickName;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", userName='" + userName + '\'' +
                ", password='" + password + '\'' +
                ", nickName='" + nickName + '\'' +
                '}';
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }
}

5.进行接口绑定的编写


我取名为UserMapper

注意这里我用了求和方法和查询所有方法

public interface UserMapper {
    /*count 求和方法接口*/
    public Integer queryCountUser();
    /*查询所有用户方法接口*/
    public ListqueryAllUsers();
}


6.进行mapper映射文件的编写

我取名为UserMapper.xml

xml version="1.0" encoding="UTF-8" ?>
mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

namespace="com.bdqn.dao.UserMapper">
    id="UserMap" type="User">
        property="id" column="id">
        property="userName" column="user_name">
        property="nickName" column="nick_name">
    

    
    
    
    


7.把所需要的SQL session抽离封装单独起一个工具类以便我们在测试时进行很好的调用

这里我取名为 MyBatisUtil类

public class MybatisUtil {
    /*声明工厂*/
    private static SqlSessionFactory sqlSessionFactory;
    /*静态代码块只执行一次*/
      static{
          String source="mybatis-config.xml";
          /*获取输入流*/
        try {
            InputStream inputStream= Resources.getResourceAsStream(source);
            /*创建一个工厂 sqlSessionFactory*/
            sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    /*打开一个SQL session*/
    public static SqlSession createSqlSession (){
      return sqlSessionFactory.openSession();
    }
    /*关闭连接释放资源*/
    public void close(SqlSession sqlSession){
        if (sqlSession!=null){
            sqlSession.close();
        }
    }
}


8.进行测试    

public class TestUser {

    /*测试求和方法*/
    private SqlSession sqlSession=null;
    Integer count;
    @Test
    public void queryCount(){
        sqlSession= MybatisUtil.createSqlSession();
        count=sqlSession.getMapper(UserMapper.class).queryCountUser();
        if (count!=null){
            System.out.println(count);
        }
    }
    /*测试查询所有用户方法*/
    @Test
    public void queryAllUsers(){
        Listlist;
        sqlSession=MybatisUtil.createSqlSession();
        list=sqlSession.getMapper(UserMapper.class).queryAllUsers();
        if (list!=null){
            for (User user : list) {
                System.out.println(user);
            }
        }
    }
}

9.配置log4j打印文件

log4j.rootLogger=DEBUG,CONSOLE,file
log4j.logger.cn.smbms.dao=debug
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug
log4j.logger.java.sql.ResultSet=debug
log4j.logger.org.tuckey.web.filters.urlrewrite.UrlRewriteFilter=debug
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=error
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern= [%p] %d %c - %m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern=yyyy-MM-dd
log4j.appender.file.File=log.log
log4j.appender.file.Append=true
log4j.appender.file.Threshold=error
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n

log4j.logger.com.opensymphony.xwork2=error  

 10.最后进行测试











你可能感兴趣的:(mybatis与数据库连接过程)