Java——mybatis(簡單使用mybatis連線mysql資料庫)
阿新 • • 發佈:2020-08-23
第一步:這裡現需要建立配置檔案,建立檔名稱為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); } }
最終效果如下:
注:想要完成以上的效果,所要用的包,如下: