IDEA使用Spring、Mybatis實現簡單的數據庫查詢。


一、創建一個mavan項目

二、創建兩個module,dao層和entity層

三、在根層添加spring-context,spring-core,spring-beans,spring-jdbc,mybatis,mysql等dao層依賴

    <dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.9.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.12</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
</dependencies>

</project>

四、在dao層創建一個StudentMapper接口



五、在接口內添加一個findAllStudent查詢學生方法

 

六、在dao層resources目錄創建一個mapper目錄用於存放Mapper.xml映射文件

  

    

 

 

Mapper.xml中所需要的映射信息及sql查詢語句,需要注意的是因為沒有mybatis-config.xml配置文件的配合,resultMap映射集的類型需要加上包名

<?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="com.nf.mapper.StudentMapper">

<resultMap id="resultStudent" type="com.nf.entity.Student">
<id property="id" column="stud_id"/>
<result property="name" column="name"/>
<result property="email" column="email"/>
<result property="dob" column="dbd"/>
</resultMap>

<select id="findAllStudent" resultMap="resultStudent">
select * from students
</select>
</mapper>
 七、在resources目錄下創建applicationContext.xml Spring容器配置文件

 

 applicationContext代碼如下:myDataSource連接池中記錄着連接信息,
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.cj.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/batis?serverTimezone=GMT%2B8&amp;useSSL=false&amp;allowPublicKeyRetrieval=true"></property>
<property name="user" value="root"></property>
<property name="password" value="1101"></property>
</bean>

<bean id="mySqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
     //引用了myDataSource連接池
<property name="dataSource" ref="myDataSource"></property>
     //在mapper目錄下找到Mapper.xml映射文件
<property name="mapperLocations" value="classpath*:mapper/*.xml"></property>
</bean>
</beans>

八、在entity層創建Student實體類,並使用快捷方式寫出get()set()方法


九、在dao層再創建一個test包寫一個Test類,在Test類中寫main()方法開始測試

 

 測試代碼如下:
package com.nf.test;

import com.nf.mapper.StudentMapper;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {

public static void main(String args[]){
     //實例化一個ClassPathXmlApplicationContext通過文件名查找方式找到
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
     //通過getBean方法找到applicationContext中的mySqlSessionFactory
SqlSessionFactory factory = (SqlSessionFactory) ac.getBean("mySqlSessionFactory");
SqlSession sqlSession = factory.openSession();
StudentMapper studao = sqlSession.getMapper(StudentMapper.class);
     //通過findAllStudent()方法查詢數據庫打印出數據的長度
System.out.println(studao.findAllStudent().size());
}
}
 十、測試結果成功,為七條

 

數據庫中的數據為七條,驗證成功

 

 

 


免責聲明!

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



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