Mybatis+mysql8.0的入门简单实例
MyBatis初认识
作用:封装了JDBC操作,简化数据库访问代码。
封装的功能:
1.获取连接,执行SQL,释放连接
2.SQL参数设置(可以直接传入对象,Mybtis会将对象的属性传入SQL语句)#{属性值}取代JDBC的?占位符
3.执行结果映射成实体对象。JDBC中需要开发者自己转换。
实体类的属性名与查询结果集ResultSet的列名保持一致,结果集有别名的话以别名为属性名。
开发者工作:写SQL语句和实体类,然后使用SqlSession对象执行SQL操
基本配置(config与src为个人使用习惯,可不做区分)
1.congif资源包下:logg4j.properpties(用于控制台输出);sqlmapconfig.xml(指定数据库连接的参数);map->xxmap.xml(具体数据库语言定义操作)
src资源包下:xx.damain->xxx.java(实体类的基本定义);xx.dao->xxxmap.java(操作函数的java语言声明);
jar包:
源代码和释义
sqlmapconfig.xml(标记部分为MySQL8.0的改动使用部分)
<?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> <environments default="development"> <environment id="development"> <!-- 使用 jdbc 事务管理 --> <transactionManager type="JDBC" /> <!-- 数据库连接池 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/users?useSSL=false&serverTimezone=UTC" /> <property name="username" value="root" /> <property name="password" value="731003" /> </dataSource> </environment> </environments> <!-- 查找 sql 映射文件 --> <mappers> <mapper resource="Mapper/LifeMAPPER.xml"/> </mappers> </configuration>
log4j.properties
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c\:mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=debug, stdout
xxx.map.xml
<?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.test.dao.LifeMapper"> <insert id="addLife" parameterType="com.test.domain.Life"> INSERT INTO life ( lifeName, 注:namespace必须准确接接口位置,id为接口类下的函数名,parameterType为实体位置 lifeBody, lifeTime ) VALUES ( #{lifeName}, #{lifeBody}, #{lifeTime} ) </insert> </mapper>
实体与接口为基本定义不做描述