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"?>
<project 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">

    <modelVersion>4.0.0</modelVersion>

<groupId>com.bdqn</groupId>
    <artifactId>BasicDao01</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--导入jar包-->
    <dependencies>
        <!--导入mybatis包-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.8</version>
        </dependency>
        <!--导入MySQL包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.28</version>
        </dependency>
        <!--导入测试包-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
        </dependency>
        <!--导入log4j包-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
        </dependency>
    </dependencies>
    <!--扫描所有.xml文件-->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>

                    <include>**/*.xml</include>

2.配置核心文件

取名为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文件-->
    <properties resource="database.properties"></properties>
<!--修改mybatis运行时的行为方式-->
    <settings>
        <!--配置log4j日志-->
    <setting name="logImpl" value="LOG4J"></setting>
    </settings>
    <!--配置别名-->
    <typeAliases>
        <package name="com.bdqn.entity"></package>
    </typeAliases>
   <!--配置运行时环境-->
    <environments default="development">
        <environment id="development">
            <!--配置事务管理器-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据源-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"></property>
                <property name="url" value="${jdbc.url}"></property>
                <property name="username" value="${jdbc.username}"></property>
                <property name="password" value="${jdbc.password}"></property>
            </dataSource>
        </environment>
    </environments>
    <!--配置映射文件 mappers映射器-->
    <mappers>
      <mapper resource="com/bdqn/dao/UserMapper.xml"></mapper>
    </mappers>

</configuration>


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 List<User>queryAllUsers();
}


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

我取名为UserMapper.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">
<!--mapper文件的路径没有.xml-->
<mapper namespace="com.bdqn.dao.UserMapper">
    <resultMap id="UserMap" type="User">
        <id property="id" column="id"></id>
        <result property="userName" column="user_name"></result>
        <result property="nickName" column="nick_name"></result>
    </resultMap>
    <!--count 求和方法sql语句返回类型为Integer类型-->
    <select id="queryCountUser" resultType="Integer">
        SELECT COUNT(1) FROM t_user
    </select>
    <!--查询所有用户方法 因为表中的列名和实体类的名字不一样所以需要映射 用到result map 返回为一个泛型list集合-->
    <select id="queryAllUsers" resultMap="UserMap" >
SELECT * FROM t_user
    </select>
</mapper>


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(){
        List<User>list;
        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.最后进行测试











  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis 是一个优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。它使用简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects)为数据库中的记录。 下面是使用 MyBatis 连接数据库的步骤: 1. 添加 MyBatis 的依赖,可以通过 Maven 或 Gradle 等构建工具进行添加。 Maven 依赖: ```xml <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> ``` 2. 配置数据库连接信息,在 MyBatis 的配置文件中指定数据库连接信息,如数据库驱动类、连接 URL、用户名和密码等。 ```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"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/example/mapper/UserMapper.xml"/> </mappers> </configuration> ``` 3. 编写 Mapper 接口和 SQL 语句,MyBatis 的 Mapper 接口相当于是一个 DAO 接口,其中定义了各种数据访问方法。 ```java public interface UserMapper { @Select("SELECT * FROM user WHERE id = #{id}") User findUserById(int id); } ``` 4. 编写测试类,调用 Mapper 接口的方法进行数据访问。 ```java public class MyBatisTest { public static void main(String[] args) { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); try (SqlSession session = sqlSessionFactory.openSession()) { UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.findUserById(1); System.out.println(user); } } } ``` 上述代码中,首先读取 MyBatis 的配置文件,创建 SqlSessionFactory 对象,然后通过 SqlSessionFactory 创建 SqlSession 对象,最后获取 Mapper 接口的实现对象,调用其中的 findUserById 方法进行数据访问。 以上就是使用 MyBatis 连接数据库的基本步骤,需要注意的是,在配置数据源时,需要根据实际情况进行配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值