1. 程式人生 > 實用技巧 >Java——mybatis(簡單使用mybatis連線mysql資料庫)

Java——mybatis(簡單使用mybatis連線mysql資料庫)

第一步:這裡現需要建立配置檔案,建立檔名稱為log4j.properties(也可以自取),在所建立的log4j.properties中進行配置,配置如下:

log4j.rootLogger=DEBUG, Console

#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.java.sql.ResultSet
=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG

第二步:建立主配置檔案,名為“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" /> <!--資料庫連線池 --> <dataSource type="POOLED"> <!--解析:這裡是新增驅動,還需要注意:這裡我的mysql版本是8點多版本,所以在新增驅動時,還需要新增cj。 如果版本不是那麼高的話,驅動就這樣的寫(com.mysql.cj.jdbc.Driver),反正根據自己的來
--> <property name="driver" value="com.mysql.cj.jdbc.Driver" /> <!--這裡屬於所訪問的地址,還是需要注意一下:下面是由於我的mysql是8點多的版本,需要新增“?serverTimezone=UTC”這個, 因為這個是解決時區的問題,出現時區的問題,就加上,如果沒有,就不加 。介紹:day是我的資料庫,還是根據自己的來 --> <property name="url" value="jdbc:mysql://localhost:3306/day?serverTimezone=UTC" /> <!--使用者 --> <property name="username" value="root" /> <!--這是mysql的密碼,反正還是根據自己的mysql的密碼 --> <property name="password" value="123456" /> </dataSource> </environment> </environments> <mappers> <!--這裡是主配置檔案(SqlMapConfig.xml)呼叫對映檔案(user.xml),配置如下 --> <mapper resource="user.xml" /> </mappers> </configuration>

第三步:建立一個類,定義一些屬性,就是為了更好的理解。這裡類名所取名為“text1”。

package com.mybatis.app;

public class text1 {
    private int id;
    private String name;
    private int age;
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "text1 [id=" + id + ", name=" + name + ", age=" + age + "]";
    }
    
    
}
程式碼如下

第四步:mybatis需要有對映檔案,所以這步就是配置對映檔案,我取名為“user.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">
 <!--作用:
 namespace:命令空間,用於隔離sql語句
   -->
   
<mapper namespace="test">
<!-- 作用: id是來用取別名
        parameterType定義輸入到sql中的對映型別
        resultType定義結果對映型別    
-->
    <select id="User" parameterType="int" resultType="com.mybatis.app.text1">
    <!--查詢語句,這是通過id來查詢  -->
        select * from student where id=#{id}<!--#{id}是屬於佔位符  -->
    </select>
</mapper>

第五步:建立測試類,程式碼如下:

package com.mybatis.app;


import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class text {
    //任務:通過員工的ID來查詢
    public static void main(String [] args) throws Exception {
        InputStream input=null;
        
        //mybatis配置檔案
        String sql="SqlMapConfig.xml";//這裡的SqlMapConfig.xml是我的主配置
        
        
        //得到配置檔案流
        InputStream inputStream = Resources.getResourceAsStream(sql);
        
        //建立會話工廠
        SqlSessionFactory sqlseesion=new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session =sqlseesion.openSession();
        
        text1 text =session.selectOne("test.User",2);//這裡‘2’是查詢id為2,並返回所有資訊
        System.out.println(text);
    }
}

最終效果如下:

注:想要完成以上的效果,所要用的包,如下: