首页 > 数据库 >maven创建普通java项目访问mysql-mybatis

maven创建普通java项目访问mysql-mybatis

时间:2023-10-26 19:34:31浏览次数:50  
标签:xml java t1 maven mysql mybatis hc t1Mapper

基础资料:

数据库: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

相关文章

  • Langchain语言模型提问请求,提问使用非标准的sse请求获取流式数据,java后台版解决方式
    问题描述:请求后接收的数据流,不走EventSourceListener的onEvent事件,但onOpenonClosed都是正常走的。 问题原因:默认的接口返回是StreamingResponse不是EventSourceResponse,无法走标准sse协议的onEvent()方法 目标需求:在不改动模型方面接口的情况下,接收到流式数据并通过sse协......
  • java复习
    java中成员变量和局部变量的区别是什么?作用域不同,局部变量的作用域仅限于定义它的方法,在该方法外无法访问它。成员变量的作用域在整个类内部都是可见的,所有成员方法都可以使用它,如果访问权限允许,还可以在类外部使用成员变量;初始值不同,对于成员变量,如果在类定义中没有给它赋予初......
  • MySQL--变量
    变量mysql中的变量分为两种14.1系统变量1)全局变量在一个会话中修改,其他会话中的全局变量也会跟着修改showglobalvariables;查看全局的系统变量修改变量:set@@global.time_zone="system"setglobaltime_zone="+8:00"2)会话级变量在一个会话中修改,其他会话不受影响showsess......
  • 使用NvicatPremium时,Mysql数据库插入数据时,报错1064
    使用navicatPremium新版本时,插入数据,显示错误1064-YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear''choose'('ChooseNo','SNo','CNo','......
  • javaweb--mysql数据模型
    关系型数据库由多张可以相互连接的二维表组成的数据库frm表文件myd数据文件注释/**/多行注释--和#单行注释四类语法DDL数据定义语言DML数据操作语言DQL数据查询语言DCL数据控制语言原始数据库information_schema存储数据库的基本信息,存储的库名表名列名等mysql存......
  • MySQL报'Access denied for user 'root'@'localhost' (using password: NO)'
    当在命令提示符下执行该命令时,报下列错误[root@clvn]#mysqladmin-urootpassword"sorry"mysqladmin:connecttoserverat'localhost'failederror:'Accessdeniedforuser'root'@'localhost'(usingpassword:NO)'解决办法:[root@c......
  • node+mysql+express实现登录/注册/修改密码/删除用户 接口
    实现用户的注册、登录、修改密码、删除用户操作用到的数据库:nodecms;表:user目录结构:db目录下存放数据库操作语句:userSQL.js用户有关的操作语句router目录接口路由文件user.js用户接口路由connect.js数据库连接index.html前端测试页面index.js入口文件package.js......
  • Java基本语法_04类型转换
    1.自动类型转换 ......
  • windows安装MySQL5.7.35
    本文适用5.7.3x。最近安装几次MySQL之后有点心得,记录一下。1.下载MySQL官网下载很慢,在此推荐用国内下载站,我用的是华为开源镜像站,速度很快。华为开源镜像站_软件开发服务_华为云在此选择对应的版本。我选择是mysql-5.7.35-winx64.zip,链接:https://repo.huaweicloud2.com/mys......
  • Java map详解 - 用法、遍历、排序、常用API等
    java.util中的集合类包含Java中某些最常用的类。最常用的集合类是List和Map。Map提供了一个更通用的元素存储方法。Map集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。本文主要介绍javamap的初始化、用法、map的四种常用的遍历方式、map的排序以及常用ap......