基础资料:
数据库:d1,表:t1,字段:xm,nl(即姓名、年龄),内容('zs',20;'ls',18)
以下内容由官网“https://mybatis.org/mybatis-3/zh/getting-started.html”整理而来。不尽不实之处请参考官网原文。
思想:
1、在pom.xml文件中除了给出mybatis和jdbc的依赖之外,还应给出资源(配置)文件位置。
2、在mybatis配置文件“mybatis-config.xml”中写入信息。主要为驱动、服务器、表配置文件信息。
3、给出与表记录对应的java类(t1.java)
4、创建接口文件"t1Mapper.java",约定要进行的数据库操作。(相当于操作数据库表的接口)
5、创建表配置文件(如“t1Mapper.xml”),写入操作对应的sql语句。(相当于实现接口)
6、编写调用程序。
步骤:
1、新建项目( mvn -B archetype:generate -DgroupId=hc -DartifactId=p2 -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 )。
目录结构:
修改pom.xml文件:
修改jdk版本,略
添加依赖(第13行定位)
1 <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> 2 <dependency> 3 <groupId>org.mybatis</groupId> 4 <artifactId>mybatis</artifactId> 5 <version>3.5.13</version> 6 </dependency> 7 <!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j --> 8 <dependency> 9 <groupId>com.mysql</groupId> 10 <artifactId>mysql-connector-j</artifactId> 11 <version>8.1.0</version> 12 </dependency> 13 </dependencies>
添加资源文件(xml),第11行定位
1 <resources> 2 <resource> 3 <directory>src/main/java/hc/data</directory> 4 <includes> 5 <include>**/*.properties</include> 6 <include>**/*.xml</include> 7 </includes> 8 <filtering>true</filtering> 9 </resource> 10 </resources> 11 </build>
2、创建并写入mybatis配置文件“mybatis-config.xml”
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "https://mybatis.org/dtd/mybatis-3-config.dtd"> 5 <configuration> 6 <environments default="development"> 7 <environment id="development"> 8 <transactionManager type="JDBC"/> 9 <dataSource type="POOLED"> 10 <property name="driver" value="com.mysql.cj.jdbc.Driver"/> 11 <property name="url" value="jdbc:mysql://xxx.xxx.xxx.xxx:xxx/d1?useSSL=false"/> 12 <property name="username" value="root"/> 13 <property name="password" value="xxxxxxxx"/> 14 </dataSource> 15 </environment> 16 </environments> 17 <mappers> 18 <mapper resource="t1Mapper.xml"/> 19 </mappers> 20 </configuration>
注意:
第11行和第13行按实际情况填写。
第10行,对于mysql5.x,应该不要中间的“cj”。
第17-19行,指出一张表(t1)的操作命令(增删改查)对应的内容
3、在实体(entity)文件夹下,写出需要的表类t1.java(通常为表中记录对应的类,此处为了省事,仅使用字段)
1 package hc.entity; 2 3 public class t1 { 4 public String xm; 5 public int nl; 6 }
4、编写接口文件t1Mapper.java,设计操作数据表t1的方法和结果
1 package hc.data; 2 import hc.entity.t1; 3 public interface t1Mapper { 4 t1 getByXm(String xm); 5 }
5、创建“t1Mapper.xml”,对具体操作进行定义。(即用xml的形式,实现t1Mapper.java的接口)
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4 "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> 5 <mapper namespace="hc.data.t1Mapper"> 6 <select id="getByXm" resultType="hc.entity.t1"> 7 select * from t1 where xm = #{xm} 8 </select> 9 </mapper>
说明:
第5行,名称空间应对应接口的类全名。
第6行,id是这条命令的名字,对应接口文件的方法名;结果类型为对应的java类(注意带上包名)。
第7行,#模式不用考虑数据类型问题(即引号问题)。
6、主程序App.java
1 package hc; 2 3 import java.io.InputStream; 4 5 import org.apache.ibatis.io.Resources; 6 import org.apache.ibatis.session.SqlSession; 7 import org.apache.ibatis.session.SqlSessionFactory; 8 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 9 10 import hc.data.t1Mapper; 11 import hc.entity.t1; 12 13 public class App 14 { 15 public static void main( String[] args ) throws Exception 16 { 17 String resource = "mybatis-config.xml"; 18 InputStream inputStream = Resources.getResourceAsStream(resource); 19 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 20 21 try (SqlSession session = sqlSessionFactory.openSession()) 22 { 23 //t1 myt1 = session.selectOne("getByXm","ls"); 24 t1Mapper mapper=session.getMapper(t1Mapper.class); 25 t1 myt1 = mapper.getByXm("zs"); 26 System.out.println(myt1.xm); 27 System.out.println(myt1.nl); 28 } 29 catch (Exception e) { 30 // TODO: handle exception 31 System.out.println(e.getMessage()); 32 } 33 } 34 }
说明:
按官方说法,工厂应在应用中长期存在;session应随着每次请求申请和释放。此处为简单测试例子,可以不做理会。
第23行与(24、25)行等效。
在第23行中,因为“getByXm”方法在所有程序中唯一,故前缀"hc.data.t1Mapper."可以省去。
cmd运行结果:
(完)
标签:xml,java,t1,maven,mysql,mybatis,hc,t1Mapper From: https://www.cnblogs.com/wanjinliu/p/17740450.html