可以做很多个网站然后哭推广,青岛市黄岛区网站建设,德宏网站建设公司,上榜网络MyBatis二、搭建 MyBatis 开发环境MySQL 不同版本的注意事项驱动程序#xff08;Driver#xff09;JDBC URL连接参数MyBatis配置文件版本兼容性常见问题与解决方案示例#xff08;MySQL 8.x与MyBatis连接#xff09; 创建 Maven 工程打包方式#xff1a;Jar引入依赖创建数… MyBatis二、搭建 MyBatis 开发环境MySQL 不同版本的注意事项驱动程序DriverJDBC URL连接参数MyBatis配置文件版本兼容性常见问题与解决方案示例MySQL 8.x与MyBatis连接 创建 Maven 工程打包方式Jar引入依赖创建数据库创建 pojo创建 MyBatis 的核心配置文件创建 Mapper 接口创建 MyBatis的映射文件通过 junit 单元测试加入 log4j 功能加入依赖加入log4j的配置文件 开发环境
IDEIDEA2024.1构建工具Maven3.8.8MySQL版本MySQL8MyBatis版本MyBatis3.5.7
MySQL 不同版本的注意事项
MySQL的不同版本与MyBatis连接的注意事项主要包括以下几个方面
驱动程序Driver
MySQL 5.x对于MySQL 5.x版本MyBatis通常使用com.mysql.jdbc.Driver作为驱动程序。MySQL 8.x对于MySQL 8.x版本由于JDBC驱动程序的更改MyBatis应使用com.mysql.cj.jdbc.Driver作为驱动程序。
JDBC URL
时区设置在连接MySQL时有时需要设置时区以避免时区相关的错误。这可以通过在JDBC URL中添加serverTimezone参数来实现例如serverTimezoneUTC或serverTimezoneAsia/Shanghai。SSL设置根据需求可能需要在JDBC URL中启用或禁用SSL连接。这可以通过添加useSSLtrue或useSSLfalse参数来实现。
连接参数
字符集为了确保数据的一致性通常需要在JDBC URL中指定字符集如characterEncodingUTF-8。其他参数根据具体需求可能还需要在JDBC URL中添加其他参数如useUnicodetrue等。
MyBatis配置文件
配置文件格式MyBatis的配置文件如mybatis-config.xml需要按照MyBatis的规范进行编写确保各项配置正确无误。数据源配置在配置文件中正确配置数据源包括驱动程序、JDBC URL、用户名和密码等。
版本兼容性
MyBatis版本确保使用的MyBatis版本与MySQL版本兼容。虽然大多数情况下不同版本的MyBatis都能与MySQL正常工作但最好还是使用经过验证的兼容版本组合。依赖管理在使用Maven或Gradle等构建工具时确保添加了正确版本的MySQL JDBC驱动依赖。
常见问题与解决方案
时区问题如果遇到时区相关的错误检查并调整JDBC URL中的serverTimezone参数。SSL问题如果遇到SSL相关的错误或警告检查并调整JDBC URL中的useSSL参数以及相关的SSL证书配置。驱动程序问题如果遇到与驱动程序相关的错误检查驱动程序是否正确添加并配置了正确的版本。
示例MySQL 8.x与MyBatis连接
在Maven的pom.xml中添加MySQL JDBC驱动依赖以8.0.26版本为例
dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.26/version
/dependency在MyBatis的配置文件中配置数据源示例
dataSource typePOOLEDproperty namedriver valuecom.mysql.cj.jdbc.Driver/property nameurl valuejdbc:mysql://localhost:3306/mydatabase?useSSLfalseserverTimezoneUTC/property nameusername valueroot/property namepassword valuepassword/
/dataSource请注意上述示例中的数据库URL、用户名和密码需要根据实际情况进行替换。
创建 Maven 工程
打包方式Jar
引入依赖
dependenciesdependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.7/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13/versionscopetest/scope/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.16/version/dependency
/dependencies创建数据库
create database ssm character set utf8mb4;use ssm;create table if not exists t_user(id int primary key auto_increment,username varchar(20),password varchar(20),age int,gender char,email varchar(50)
) character set utf8mb4;创建 pojo
package cn.keke.mybatis.pojo;/*** Copyright (C) 2024 - 2024 keke Inc. All Rights Reserved** Desc :* Time : 2024/6/2 14:46* Author : Code_By_keke* Email : 2284037977qq.com* Class : User* IDE : IntelliJ IDEA*/
public class User {private Integer id;private String username;private String password;private Integer age;private String gender;private String email;public User(){}public User(Integer id, String username, String password, Integer age, String gender, String email) {this.id id;this.username username;this.password password;this.age age;this.gender gender;this.email email;}public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender gender;}public String getEmail() {return email;}public void setEmail(String email) {this.email email;}Overridepublic String toString() {return User{ id id , username username \ , password password \ , age age , gender gender \ , email email \ };}
}
创建 MyBatis 的核心配置文件 习惯上命名为mybatis-config.xml这个文件名仅仅只是建议并非强制要求。将来整合Spring之后这个配置文件可以省略所以大家操作时可以直接复制、粘贴。 核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息 核心配置文件存放的位置是src/main/resources目录下 ?xml version1.0 encodingUTF-8 ?
!DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd
configuration!-- 设置连接数据库的环境 --environments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC /dataSource typePOOLEDproperty namedriver valuecom.mysql.cj.jdbc.Driver/property nameurl valuejdbc:mysql://localhost:3306/ssm?serverTimezoneUTC/property nameusername valueroot/property namepassword value123456//dataSource/environment/environments!-- 引入 MyBatis 的映射文件 --mappersmapper resource//mappers
/configuration
创建 Mapper 接口 MyBatis 中的 Mapper 接口相当于以前的 dao但区别在于Mapper 仅仅是接口不需要提供实现类 package cn.keke.mybatis.mapper;/*** Copyright (C) 2024 - 2024 keke Inc. All Rights Reserved** Desc :* Time : 2024/6/2 15:18* Author : Code_By_keke* Email : 2284037977qq.com* Class : UserMapper* IDE : IntelliJ IDEA*/
public interface UserMapper {int insertUser();
}
创建 MyBatis的映射文件
相关概念ORMObject Relationship Mapping对象关系映射。
对象Java的实体类对象关系关系型数据库映射二者之间的对应关系
Java 概念数据库概念类表属性字段/列对象记录/行 映射文件的命名规则 表所对应的实体类的类名Mapper.xml 例如表t_user映射的实体类为User所对应的映射文件为UserMapper.xml 因此一个映射文件对应一个实体类对应一张表的操作 MyBatis映射文件用于编写SQL访问以及操作表中的数据 MyBatis映射文件存放的位置是src/main/resources/mappers目录下MyBatis中可以面向接口操作数据要保证两个一致 mapper接口的全类名和映射文件的命名空间namespace保持一致mapper接口中方法的方法名和映射文件中编写SQL的标签的id属性保持一致 ?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecn.keke.mybatis.mapper.UserMapper!--mapper 接口和映射文件要保证两个一致1.mapper 接口中的全类名和映射文件的 namespace 一致2.mapper 接口中的方法名要和映射文件中的 SQL 的 id 保持一致--insert idinsertUserinsert into t_user (id, username, password, age, gender, email)values (null, admin, 123456, 23, 男, 12345qq.com);/insert
/mapper通过 junit 单元测试
package cn.keke;import cn.keke.mybatis.mapper.UserMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import java.io.IOException;
import java.io.InputStream;/*** Copyright (C) 2024 - 2024 keke Inc. All Rights Reserved** Desc :* Time : 2024/6/2 21:49* Author : Code_By_keke* Email : 2284037977qq.com* Class : MyBatisTest* IDE : IntelliJ IDEA*/
public class MyBatisTest {Testpublic void testInsert() throws IOException {// 获取核心配置文件的输入流InputStream is Resources.getResourceAsStream(mybatis-config.xml);// 获取 SqlSessionFactoryBuilder 对象SqlSessionFactoryBuilder sqlSessionFactoryBuilder new SqlSessionFactoryBuilder();// 获取 SqlSessionFactory 对象SqlSessionFactory sqlSessionFactory sqlSessionFactoryBuilder.build(is);// 获取 SQL 的会话对象 SqlSession(会自动提交事务)是 MyBatis 提供的操作数据库的对象SqlSession sqlSession sqlSessionFactory.openSession(true);// 获取 UserMapper 的代理实现类对象UserMapper mapper sqlSession.getMapper(UserMapper.class);// 调用 mapper 中的方法实现添加用户信息的功能int result mapper.insertUser();System.out.println(结果 result);// 提交事务sqlSession.commit();// 关闭 SqlSessionsqlSession.close();}
}SqlSession代表Java程序和数据库之间的会话。HttpSession是Java程序和浏览器之间的 会话SqlSessionFactory是“生产”SqlSession的“工厂”。工厂模式如果创建某一个对象使用的过程基本固定那么我们就可以把创建这个对象的 相关代码封装到一个“工厂类”中以后都使用这个工厂类来“生产”我们需要的对象。 加入 log4j 功能
加入依赖
dependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version
/dependency加入log4j的配置文件 log4j的配置文件名为log4j.xml存放的位置是src/main/resources目录下 ?xml version1.0 encodingUTF-8 ?
!DOCTYPE log4j:configuration SYSTEM log4j.dtd
log4j:configuration xmlns:log4jhttp://jakarta.apache.org/log4j/appender nameSTDOUT classorg.apache.log4j.ConsoleAppenderparam nameEncoding valueUTF-8/layout classorg.apache.log4j.PatternLayoutparam nameConversionParttern value%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n//layout/appenderlogger namejava.sqllevel valuedebug//loggerlogger nameorg.apache.ibatislevel valueinfo//loggerrootlevel valuedebug/appender-ref refSTDOUT//root
/log4j:configuration 日志的级别 FATAL(致命)ERROR(错误)WARN(警告)INFO(信息)DEBUG(调试) 从左到右打印的内容越来越详细
文章转载自: http://www.morning.rwtlj.cn.gov.cn.rwtlj.cn http://www.morning.sooong.com.gov.cn.sooong.com http://www.morning.vnuwdy.cn.gov.cn.vnuwdy.cn http://www.morning.ydxwj.cn.gov.cn.ydxwj.cn http://www.morning.pqxjq.cn.gov.cn.pqxjq.cn http://www.morning.lfsmf.cn.gov.cn.lfsmf.cn http://www.morning.rwpfb.cn.gov.cn.rwpfb.cn http://www.morning.xjpnq.cn.gov.cn.xjpnq.cn http://www.morning.qdbcd.cn.gov.cn.qdbcd.cn http://www.morning.fwkq.cn.gov.cn.fwkq.cn http://www.morning.mlpmf.cn.gov.cn.mlpmf.cn http://www.morning.gyqnc.cn.gov.cn.gyqnc.cn http://www.morning.yjknk.cn.gov.cn.yjknk.cn http://www.morning.ndngj.cn.gov.cn.ndngj.cn http://www.morning.ybmp.cn.gov.cn.ybmp.cn http://www.morning.ndcjq.cn.gov.cn.ndcjq.cn http://www.morning.rlrxh.cn.gov.cn.rlrxh.cn http://www.morning.tnhqr.cn.gov.cn.tnhqr.cn http://www.morning.cwlxs.cn.gov.cn.cwlxs.cn http://www.morning.tnbas.com.gov.cn.tnbas.com http://www.morning.xkyst.cn.gov.cn.xkyst.cn http://www.morning.kfyjh.cn.gov.cn.kfyjh.cn http://www.morning.ymtbr.cn.gov.cn.ymtbr.cn http://www.morning.gxcit.com.gov.cn.gxcit.com http://www.morning.yysqz.cn.gov.cn.yysqz.cn http://www.morning.qxbsq.cn.gov.cn.qxbsq.cn http://www.morning.tbjb.cn.gov.cn.tbjb.cn http://www.morning.ruyuaixuexi.com.gov.cn.ruyuaixuexi.com http://www.morning.rymb.cn.gov.cn.rymb.cn http://www.morning.cfjyr.cn.gov.cn.cfjyr.cn http://www.morning.fqnql.cn.gov.cn.fqnql.cn http://www.morning.lqffg.cn.gov.cn.lqffg.cn http://www.morning.lzqdd.cn.gov.cn.lzqdd.cn http://www.morning.wrtw.cn.gov.cn.wrtw.cn http://www.morning.pbksb.cn.gov.cn.pbksb.cn http://www.morning.wsgyq.cn.gov.cn.wsgyq.cn http://www.morning.yhwxn.cn.gov.cn.yhwxn.cn http://www.morning.hxftm.cn.gov.cn.hxftm.cn http://www.morning.jrhcp.cn.gov.cn.jrhcp.cn http://www.morning.rkfxc.cn.gov.cn.rkfxc.cn http://www.morning.cwgpl.cn.gov.cn.cwgpl.cn http://www.morning.dpqqg.cn.gov.cn.dpqqg.cn http://www.morning.srgnd.cn.gov.cn.srgnd.cn http://www.morning.lfpzs.cn.gov.cn.lfpzs.cn http://www.morning.rbgwj.cn.gov.cn.rbgwj.cn http://www.morning.zkpwk.cn.gov.cn.zkpwk.cn http://www.morning.tnbsh.cn.gov.cn.tnbsh.cn http://www.morning.hrhwn.cn.gov.cn.hrhwn.cn http://www.morning.zmnyj.cn.gov.cn.zmnyj.cn http://www.morning.rkzb.cn.gov.cn.rkzb.cn http://www.morning.rlqqy.cn.gov.cn.rlqqy.cn http://www.morning.dmkhd.cn.gov.cn.dmkhd.cn http://www.morning.mmhaoma.com.gov.cn.mmhaoma.com http://www.morning.xstfp.cn.gov.cn.xstfp.cn http://www.morning.tmrjb.cn.gov.cn.tmrjb.cn http://www.morning.bqmdl.cn.gov.cn.bqmdl.cn http://www.morning.pcgjj.cn.gov.cn.pcgjj.cn http://www.morning.kcwkt.cn.gov.cn.kcwkt.cn http://www.morning.tkzrh.cn.gov.cn.tkzrh.cn http://www.morning.ltpmy.cn.gov.cn.ltpmy.cn http://www.morning.knsmh.cn.gov.cn.knsmh.cn http://www.morning.bfmq.cn.gov.cn.bfmq.cn http://www.morning.yptwn.cn.gov.cn.yptwn.cn http://www.morning.bpwz.cn.gov.cn.bpwz.cn http://www.morning.zxhpx.cn.gov.cn.zxhpx.cn http://www.morning.ylljn.cn.gov.cn.ylljn.cn http://www.morning.tbqdm.cn.gov.cn.tbqdm.cn http://www.morning.qtltg.cn.gov.cn.qtltg.cn http://www.morning.hnrdtz.com.gov.cn.hnrdtz.com http://www.morning.rhgtc.cn.gov.cn.rhgtc.cn http://www.morning.krklj.cn.gov.cn.krklj.cn http://www.morning.zrhhb.cn.gov.cn.zrhhb.cn http://www.morning.stbfy.cn.gov.cn.stbfy.cn http://www.morning.fxzlg.cn.gov.cn.fxzlg.cn http://www.morning.clxpp.cn.gov.cn.clxpp.cn http://www.morning.pdbgm.cn.gov.cn.pdbgm.cn http://www.morning.nxfwf.cn.gov.cn.nxfwf.cn http://www.morning.snbq.cn.gov.cn.snbq.cn http://www.morning.zgnng.cn.gov.cn.zgnng.cn http://www.morning.mrnnb.cn.gov.cn.mrnnb.cn