如何用mybatis鏈接數據庫


 

用mybatis鏈接數據庫十分的方便,這里總結一下具體的步驟。

1.首先創建一個maven項目

在pom.xml導入依賴

 1 <dependencies>
 2         <dependency>
 3             <groupId>org.mybatis</groupId>
 4             <artifactId>mybatis</artifactId>
 5             <version>3.4.4</version>
 6         </dependency>
 7         <dependency>
 8             <groupId>mysql</groupId>
 9             <artifactId>mysql-connector-java</artifactId>
10             <version>5.1.47</version>
11         </dependency>
12         <dependency>
13             <groupId>c3p0</groupId>
14             <artifactId>c3p0</artifactId>
15             <version>0.9.1.2</version>
16         </dependency>
17 
18     </dependencies>

2.在resources目錄創建mybatis配置文件名字叫做mybatis-config.xml 。

在mybatis-config.xml中根據自己的需要設置一些setting,配置相應的環境,還有映射文件。

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2         <!DOCTYPE configuration
 3                 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4                 "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6 <!-- 引入外部資源文件 -->
 7 <properties resource="jdbc.properties"></properties>
 8 <!-- 設置駝峰匹配 -->
 9 <settings>
10     <setting name="mapUnderscoreToCamelCase" value="true"/>
11     <!-- 打印查詢語句 -->
12     <setting name="logImpl" value="STDOUT_LOGGING" />
13 </settings>
14 <!-- 配置環境:可以配置多個環境,default:配置某一個環境的唯一標識,表示默認使用哪個環境 -->
15 <environments default="development">
16     <environment id="development">
17         <transactionManager type="JDBC"/>
18         <dataSource type="POOLED">
19             <!-- 配置連接信息 -->
20             <property name="driver" value="${jdbc.driver}"/>
21             <property name="url" value="${jdbc.url}"/>
22             <property name="username" value="${jdbc.username}"/>
23             <property name="password" value="${jdbc.password}"/>
24         </dataSource>
25     </environment>
26 </environments>
27 <!-- 配置映射文件:用來配置sql語句和結果集類型等 -->
28 <mappers>
29     <mapper resource="org/seckill/mapper/dataDao.xml"/>
30 </mappers>
31 </configuration>

注意:這個地方的xml文件就是一會要寫sql語句的xml,這個路徑根據自己的配置進行調整。

3.在resources下配置一個properties

這個用來寫你數據庫連接的host、user、password

 

4.在java下創建一個包,里面寫dao層的接口。【我這個包起名的時候很蠢,大家一定按照規則寫包名!!

dataDao接口就是用來接收數據庫中的數據的格式問題。

舉個例子:我自己的數據庫里是一個含有年級的學生信息(里面有id name 年級 分數等等)

我要取出所有年級為高中的學生信息。

1 package org.seckill.mapper;
2 
3 import org.seckill.entity.Data;
4 
5 import java.util.List;
6 
7 public interface dataDao {
8     List<Data> selectAll(String grade);
9 }

通過傳參數grade:小學/初中/高中  ,最后從數據庫導出的時候,就會被封裝為Data類型的一個列表。

那么:::Data數據類型是什么?

我在entity包中創建了一個Data類,就是把所有的一條sql語句中的id、name、年級、分數等封裝在一起。。(這個大家都懂)

Data類里面有:

1     private Long id;
2     private int mark;
3     private String names;

等等,包括他們的get、set方法。

5. 在同樣的mapper包下面,闖將一個dataDao的xml與接口對應。dataDao.xml里面是用來寫sql的。

 

<?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 namespace="org.seckill.mapper.dataDao">
    <!--查詢所有-->
    <select id="selectAll" parameterType="String" resultType="org.seckill.entity.Data">
        select  * from A where grade=#{grade};
    </select>
</mapper>

namespace是對應的接口名字。#{grade}就是第4步在dataDao中傳入的年級。

 

6.由於只用了mybatis,所以我們需要自己創建會話工廠

在主函數中,或者單獨寫一個函數封裝連接功能。

 1 String resource = "mybatis-config.xml";
 2         InputStream inputStream = null;
 3         SqlSession session = null;
 4         List<Data> all = null;
 5         try {
 6             inputStream = Resources.getResourceAsStream(resource);
 7             //使用流對象創建一個會話工廠
 8             SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(inputStream);
 9             //session就是程序員與數據庫交互的入口
10             session = sf.openSession();
11             dataDao mapper = session.getMapper(dataDao.class);
12             all = mapper.selectAll("高中");
13         } catch (IOException e) {
14             e.printStackTrace();
15         } finally {
16             session.commit();
17             //關閉會話,釋放資源
18             session.close();
19         }

 最后所有拿到的數據就被放在

List<Data> all

這個list中了,就可以進一步進行處理。

這樣mybatis就鏈接mysql就完事了



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM