zoukankan      html  css  js  c++  java
  • MyBatis连接MySql数据库

    pom.xml中的坐标

    <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.48</version>
        </dependency>

     log4j.properties

    log4j.rootLogger=DEBUG, stdout
    
    # SqlMap logging configuration...
    log4j.logger.com.ibatis=DEBUG
    log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
    log4j.logger.com.ibatis.sqlmap.engine.cache.CacheModel=DEBUG
    log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientImpl=DEBUG
    log4j.logger.com.ibatis.sqlmap.engine.builder.xml.SqlMapParser=DEBUG
    log4j.logger.com.ibatis.common.util.StopWatch=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
    
    # 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

    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>
    
             <!-- 自动扫描实体类起别名 -->
         <typeAliases>
             <package name="com.baizhi.dao"/>
         </typeAliases> 
    
         
        <!-- 数据库环境设置 ,可以配置多个环境设置
                              属性     default:指定当前使用的数据库环境
        -->
        <environments default="db1">
            <!-- 一个数据库环境的设置
                 id     当前环境的唯一标识
             -->
            <environment id="db1">
                <!-- 事务控制机制
                     type:  JDBC  
                            MANAGER 交给第三方软件处理事务
                  -->
                <transactionManager type="JDBC"></transactionManager>
                
                <!-- 连接池设置
                     type : POOLED 使用数据库连接池
                            UNPOOLED  不使用数据库连接池         
                 -->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/alex?useUnicode=true&amp;characterEncoding=utf-8"/>
                    <property name="username" value="root"/>
                    <property name="password" value="root"/>
                </dataSource>
            </environment>
        </environments>    
        
        <mappers>
         
        <!-- 注册所有mapper.xml -->
          <!--   <mapper resource="com/baizhi/dao/EmpDaoMapper.xml"/> -->
                <!-- 自动扫描包,自动注册mapper.xml
                            要求 dao接口对应的xml文件,名字必须相同-->
                      <package name="com.baizhi.dao"/>
        </mappers> 
     
    </configuration>

    MyBatiusUtil

    package com.baizhi.util;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    import java.io.IOException;
    import java.io.Reader;
    
    public class MyBatisUtil {
        private static SqlSessionFactory ssf;
        static {
            try {
                //读取主配置文件
                Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
                //创建sqlsessionfactory(sqlsession工厂)
                ssf = new SqlSessionFactoryBuilder().build(reader);
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
        public static SqlSession getSqlSession() {
            //通过ssf获取sqlsession
            SqlSession sqlSession = null;
            sqlSession = ssf.openSession();
            return sqlSession;
        }
        //先判断sqlsession不是空再关
        public static void close(SqlSession sqlSession) {
            if(sqlSession!=null) {
                sqlSession.close();
            }
        }
    }
    以粮为纲全面发展
  • 相关阅读:
    [题解]小X的液体混合
    [题解]图的遍历
    [模板]基本线段树操作
    C#中 Excel列字母与数字的相互转换
    Oracle 查询数据库表大小
    vi/vim 编辑、搜索、查找、定位
    Linux 中 sqlite3 基本操作
    MessageBox.Show 消息提示框显示到窗口最顶层
    Docker bash: ping: command not found 解决方法
    PLSQL F8执行单条SQL
  • 原文地址:https://www.cnblogs.com/alexliuf/p/13806478.html
Copyright © 2011-2022 走看看