Mybatis通過Mapper代理連接數(shù)據(jù)庫的方法
1.在數(shù)據(jù)庫中創(chuàng)建表和相應(yīng)字段,如下圖我創(chuàng)建了三個(gè)字段分別為fromname,message,toname,類型為varchar
2.創(chuàng)建對應(yīng)的pojo實(shí)體類,注意類型要和數(shù)據(jù)庫創(chuàng)建類型一致,如varchar()對應(yīng)的是java.lang.String
3.在resource路徑下配置config.xml,配置Mybatis的運(yùn)行環(huán)境3306/后面加上自己的數(shù)據(jù)庫schema名字,數(shù)據(jù)庫username和password輸入自己的賬號和密碼,而在下方mapper則是用于注冊我們待會要寫的xml文件,路徑用/ 寫上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> <!--配置Mybatis運(yùn)行環(huán)境--> <environments default="development"><!--default命名--> <environment id="development"><!--和上面的一致--> <transactionManager type="JDBC"></transactionManager><!--事務(wù)管理 交給JDBC--> <!-- 數(shù)據(jù)源 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/bjpower? useUnicode=true&characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="xxxx"/> </dataSource> </environment> </environments> <mappers> <!-- <mapper resource="com/yyj/repository/msgdataRepository.xml"></mapper>--> <mapper resource="com/yyj/repository/msgdatanewRepository.xml"></mapper> </mappers> </configuration>
4.自定義接口,在repository包下自定義接口,待會在xml中實(shí)現(xiàn)即可
5.在repository中建立對應(yīng)的xml文件,如我取的名稱為MsgdatanewReposiotory,名字可自定義,注意mapper注冊和改名字一樣即可,然后編寫sql語句
statement 的 id 為接⼝中對應(yīng)的⽅法名
<?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.yyj.repository.MsgdatanewRepository"><!--接口全類名--> <insert id="save1" parameterType="com.yyj.pojo.MessageData"> <!--parameterType為傳入的參數(shù)類型,是剛剛設(shè)置的pojo類--> insert into msgdatanew(fromname,message,toname) values (#{fromName},#{message},#{toName}) </insert> <!--resultType為返回值類型--> <select id="findByName1" parameterType="java.lang.String" resultType="com.yyj.pojo.MessageData"> select * from msgdatanew where toname = #{toName} </select> </mapper>
6.調(diào)用測試類即可,注意要添加commit事務(wù)才能提交成功,數(shù)據(jù)庫才有變化
package com.yyj.Test; import com.yyj.pojo.MessageData; import com.yyj.repository.MsgdatanewRepository; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.InputStream; public class Test2 { // public void add(String toName,String message,String fromName){ public static void main(String[] args) { InputStream inputStream = Test2.class.getClassLoader().getResourceAsStream("config.xml"); SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); MsgdatanewRepository msgdatanewRepository = sqlSession.getMapper(MsgdatanewRepository.class); MessageData messageData=new MessageData(); messageData.setMessage("nihaoyayay"); messageData.setFromName("lisi"); int save = msgdatanewRepository.save1(messageData); System.out.println(save); sqlSession.commit(); } }
7.效果展示
8.附上pom.xml文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.demo</groupId> <artifactId>websocket-chatroom</artifactId> <version>0.0.1-SNAPSHOT</version> <name>websocket-chatroom</name> <description>WebSocket示例工程</description> <properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <spring-boot.version>2.3.7.RELEASE</spring-boot.version> </properties> <dependencies> <!--mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <!--mysql驅(qū)動--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- <!– ehcache –>--> <!-- <dependency>--> <!-- <groupId>net.sf.ehcache</groupId>--> <!-- <artifactId>ehcache-core</artifactId>--> <!-- <version>2.4.3</version>--> <!-- </dependency> <dependency>--> <!-- <groupId>org.mybatis</groupId>--> <!-- <artifactId>mybatis-ehcache</artifactId>--> <!-- <version>1.0.0</version>--> <!-- </dependency>--> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.7.RELEASE</version> <configuration> <mainClass>com.yyj.WebsocketChatroomApplication</mainClass> </configuration> <executions> <execution> <id>repackage</id> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build> </project>
到此這篇關(guān)于Mybatis通過Mapper代理連接數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)Mybatis Mapper代理連接數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring boot整合mybatis使用c3p0數(shù)據(jù)源連接mysql
這篇文章主要為大家詳細(xì)介紹了spring boot整合mybatis使用c3p0數(shù)據(jù)源連接mysql,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03一文詳解Java中的可變對象(Mutable)與不可變對象(Immutable)
如何在 Java 中創(chuàng)建不可變對象?我以前以為所有對象都是不可變的,因?yàn)槿绻愀淖円粋€(gè) String 實(shí)例的內(nèi)容,它總是會創(chuàng)建一個(gè)新的 String 對象并指向該對象,在本文中,我不僅將分享在 Java 中Immutable的步驟,還將討論可變對象與不可變對象及其優(yōu)缺點(diǎn)2023-11-11idea2020.1無法自動加載maven依賴的jar包問題及解決方法
這篇文章主要介紹了idea2020.1無法自動加載maven依賴的jar包問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07java使用計(jì)算md5校驗(yàn)碼方式比較兩個(gè)文件是否相同
MD5文件效驗(yàn)碼是一個(gè)判斷文件是否是相同文件的途徑,通過比較兩個(gè)文件的Md5效驗(yàn)碼是否相同來精確判斷兩個(gè)文件是否相同2014-04-04