mybatis没有导入sqlsessionfactory包_MyBatis——搭建第一个MyBatis
MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲(chǔ)過程以及高級(jí)映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。MyBatis 可以通過簡(jiǎn)單的 XML 或注解來配置和映射原始類型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 對(duì)象)為數(shù)據(jù)庫中的記錄。
在學(xué)習(xí)Maven之前最好先去復(fù)習(xí)一下JDBC、Mysql、JAVA基礎(chǔ)、Junit和Maven知識(shí)。
首先,我們先在IDEA新建一個(gè)MAVEN的普通項(xiàng)目并在pom.xml文件內(nèi)導(dǎo)入相關(guān)所需要的jar包。(等待導(dǎo)入的過程中最好去確認(rèn)下setting->Build,Execution->Build Tools->Maven里使用的版本是不是自己下載安裝的版本)
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.4</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.46</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies>我們?cè)傩陆ㄒ粋€(gè)子module-MyBatis-01創(chuàng)建項(xiàng)目便于后期的維護(hù)。因?yàn)槊總€(gè)基于 MyBatis 的應(yīng)用都是以一個(gè) SqlSessionFactory 的實(shí)例為核心的,所以采用XML 中構(gòu)建SqlSessionFactory。先創(chuàng)建XML文件里面包含了對(duì) MyBatis 系統(tǒng)的核心設(shè)置,包括獲取數(shù)據(jù)庫連接實(shí)例的數(shù)據(jù)源(DataSource)以及決定事務(wù)作用域和控制方式的事務(wù)管理器。
XML 頭部的聲明,它用來驗(yàn)證 XML 文檔的正確性。environment 元素體中包含了事務(wù)管理和連接池的配置。mappers 元素則包含了一組映射器(mapper),這些映射器的 XML 映射文件包含了 SQL 代碼和映射定義信息。為了避免產(chǎn)生亂碼問題,在url后綴加上useUnicode=true&characterEncoding=UTF-8"。
SqlSessionFactoryBuilder這個(gè)類可以被實(shí)例化、使用和丟棄,一單創(chuàng)建sqlSessionFactory就不再需要它; SqlSessionFactory它一旦被創(chuàng)建就在應(yīng)用運(yùn)行期間一直存在;SqlSession每個(gè)線程都有一個(gè),但不是線程安全的。即每收到一個(gè)Http請(qǐng)求就會(huì)打開一個(gè)Session,返回一個(gè)響應(yīng)就關(guān)閉它。一定要記得Finnaly塊進(jìn)行關(guān)閉操作!
然后通過Resources 的工具類從類路徑位置加載資源文件構(gòu)建出 SqlSessionFactory 實(shí)例。
String resource;InputStream inputStream;{try {//使用MyBatis獲取sqlSessionFactory對(duì)象resource = "org/mybatis/example/mybatis-config.xml";inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();}}public static SqlSession getSessin(){//這樣就可以從sqlSessionFactory中獲得sqlSession實(shí)例//它包含了面向數(shù)據(jù)庫執(zhí)行執(zhí)行所有sql語句的方法SqlSession sqlSession = sqlSessionFactory.openSession();return sqlSession;}緊接著我們要建數(shù)據(jù)庫、建實(shí)體類,具體步驟我就一筆帶過啦!
定義Dao層的包,并實(shí)現(xiàn)XML文件相當(dāng)于dao的實(shí)現(xiàn)類!
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.dao.UserDao"> //命名空間綁定接口類的路徑 //select查詢語句<select id="getUser" resultType="User"> //id為重寫的方法名 resultType為方法返回類型select * from mybatis.user; //查找mbatis數(shù)據(jù)庫的user表</select> </mapper>然后要mapper注冊(cè),在mybatis-config.xml添加實(shí)現(xiàn)UserDao的xml文件的映射關(guān)系(這就類似于要在web.xml里面配置Servlet映射)。
<mappers><mapper resource="com/dao/UserMapper.xml"/></mappers> </configuration>運(yùn)行是出現(xiàn)了這個(gè)錯(cuò)誤...
在Project Structure里面修改了
project setting里修改了
Seetting ->Build->Java compiler里面修改
再不行就修改pom.xml文件
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.encoding>UTF-8</maven.compiler.encoding><java.version>11</java.version><maven.compiler.source>11</maven.compiler.source><maven.compiler.target>11</maven.compiler.target></properties>這樣應(yīng)該就可以了(注意! 最好是修改父module的pom.xml上或者全部pom.xml都修改),然后配置項(xiàng)目文件的導(dǎo)出。
回顧過程:
1.導(dǎo)入mybatis和mysql的jar包
2.創(chuàng)建mybatis-config.xml配置數(shù)據(jù)庫文件,創(chuàng)建MyBatisUtils工具類加載初始化xml文件
3.寫實(shí)體類和接口,寫接口的實(shí)現(xiàn)類XML文件,綁定標(biāo)簽、方法和返回類型,編寫sql語句
4.寫test測(cè)試
總結(jié)
以上是生活随笔為你收集整理的mybatis没有导入sqlsessionfactory包_MyBatis——搭建第一个MyBatis的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: caffe教程翻译:在caffe上训练与
- 下一篇: caffe源码分析:blob.hpp分析