2017网站设计趋势,简单网页源代码,建设银行中国网站首页,个人做电影网站服务器放国外安全吗目录
一、MyBatis简介
二、搭建MyBatis
(一)配置依赖
(二)log4j日志功能
(三)数据库配置文件——jdbc.properties
(四)创建MyBatis的核心配置文件
(五)使用MyBatisX插件
三、项目其他配置搭建
(一)创建数据库连接工具类
(二)创建表
(三)创建数据库的实体类
(四)Use…目录
一、MyBatis简介
二、搭建MyBatis
(一)配置依赖
(二)log4j日志功能
(三)数据库配置文件——jdbc.properties
(四)创建MyBatis的核心配置文件
(五)使用MyBatisX插件
三、项目其他配置搭建
(一)创建数据库连接工具类
(二)创建表
(三)创建数据库的实体类
(四)UserMapper接口
(五)UserMapper.xml
(六)测试类 一、MyBatis简介 MyBatis是一款优秀的持久层框架主要用于简化数据库操作它支持自定义SQL、存储过程以及高级映射。 它内部封装了JDBC开发时只需要关注SQL语句本身不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。直接编写原生态sql可以严格控制sql执行性能灵活度高。 MyBatis可以使用 XML或注解来配置和映射原生信息将POJO映射成数据库中的记录避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
下载地址https://github.com/mybatis/mybatis-3
二、搭建MyBatis maven3.8.1 MySQL8 MyBatis3.5.16 (一)配置依赖
pom.xml
dependencies!-- Mybatis核心 --dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.16/version/dependency!-- junit测试 -- dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-api/artifactIdversion5.11.3/versionscopetest/scope/dependency!-- MySQL驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.33/version/dependency!-- lombok --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.36/versionscopeprovided/scope/dependency!-- log4j日志 --dependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version/dependency/dependencies
(二)log4j日志功能 日志的级别 FATAL(致命)ERROR(错误)WARN(警告)INFO(信息)DEBUG(调试) 从左到右打印的内容越来越详细 src/main/resources/log4j.xml如果有报红无需在意
?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 nameConversionPattern 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
(三)数据库配置文件——jdbc.properties
src/main/resources/jdbc.properties
jdbc.drivercom.mysql.cj.jdbc.Driver
jdbc.urljdbc:mysql://localhost:3306/mybatis?serverTimezoneUTC
jdbc.usernameroot
jdbc.passwordroot 指定serverTimezoneUTC参数的主要作用是解决时区问题确保从数据库中检索的时间和日期值与Java应用程序中的时区设置一致。 (四)创建MyBatis的核心配置文件
核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息
src/main/resources/mybatis-config.xml
?xml version1.0 encodingUTF-8 ?
!DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd
configuration!--MyBatis核心配置文件中标签的顺序properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?--!--引入properties文件--properties resourcejdbc.properties/!-- 设置MyBatis的全局配置--settings!-- 将_自动映射为驼峰例如emp_nameempName--setting namemapUnderscoreToCamelCase valuetrue/!-- 开启延迟加载--setting namelazyLoadingEnabled valuetrue//settings!--设置类型别名--typeAliases !--以包为单位将包下所有的类型设置默认的类型别名即类名且不区分大小写--package namecom.atguigu.mybatis.pojo//typeAliases!--environments配置多个连接数据库的环境属性default设置默认使用的环境的id--environments defaultdevelopment!--environment配置某个具体的环境属性id表示连接数据库的环境的唯一标识不能重复--environment iddevelopment!--transactionManager设置事务管理方式属性typeJDBC|MANAGEDJDBC表示当前环境中执行SQL时使用的是JDBC中原生的事务管理方式事
务的提交或回滚需要手动处理MANAGED被管理例如Spring--transactionManager typeJDBC/!--dataSource配置数据源属性type设置数据源的类型typePOOLED|UNPOOLED|JNDIPOOLED表示使用数据库连接池缓存数据库连接UNPOOLED表示不使用数据库连接池JNDI表示使用上下文中的数据源--dataSource typePOOLEDproperty namedriver value${jdbc.driver}/property nameurl value${jdbc.url}/property nameusername value${jdbc.username}/property namepassword value${jdbc.password}//dataSource/environment/environments!--引入映射文件--mappers!--mapper resourcemappers/UserMapper.xml/--!--以包为单位引入映射文件要求1.mapper接口所在的包要和映射文件所在的包一致2.mapper接口要和映射文件的名字一致--package namecom.atguigu.mybatis.mapper//mappers
/configuration
(五)使用MyBatisX插件 三、项目其他配置搭建 (一)创建数据库连接工具类
com.atguigu.mybatis.utils.SqlSessionUtils.SqlSessionUtils
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 java.io.IOException;
import java.io.InputStream;public class SqlSessionUtils {public static SqlSession getSqlSession() {SqlSession sqlSession null;try {InputStream is Resources.getResourceAsStream(mybatis-config.xml);SqlSessionFactoryBuilder sqlSessionFactoryBuilder new SqlSessionFactoryBuilder();SqlSessionFactory sqlSessionFactory sqlSessionFactoryBuilder.build(is);sqlSession sqlSessionFactory.openSession(true);} catch (IOException e) {e.printStackTrace();}return sqlSession;}
}
(二)创建表
create table t_user
(id int auto_increment primary key,username varchar(20) null,password varchar(20) null,age int null,sex char null,email varchar(50) null
);-- 插入数据
insert into t_user
values (null, 张三, 123456, 19, 男, abc456163.com),(null, 李四, 123456, 20, 女, abc123163.com),(null, 王五, 123456, 25, 男, 123xyzqq.com);
(三)创建数据库的实体类
com.atguigu.mybatis.pojo.User
Data
AllArgsConstructor
NoArgsConstructor
public class User {private Integer id;private String username;private String password;private Integer age;private String sex;private String email;
}
(四)UserMapper接口
import com.atguigu.mybatis.pojo.User;
import org.apache.ibatis.annotations.Param;import java.util.List;public interface UserMapper {/*** 添加用户信息*/int insertUser(User user);/*** 根据id修改用户信息*/int updateUser(User user);/*** 根据id删除用户信息*/int deleteUser(Integer id);/*** 根据id查询用户信息*/User getUserById(Integer id);/*** 根据username查询用户信息*/ListUser getUserByUserNameAndPassword(Param(username) String username, Param(password)String password);/*** 查询所有用户信息*/ListUser getAllUser();
}
(五)UserMapper.xml
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
!--MaBatis面向接口编程的两个一致1.映射文件的namespace要和mapper接口的全类名保持一致通过接口就能找到映射文件2.映射文件中SQL语句的id要和mapper接口中的方法名一致通过接口中的抽象方法就能找到SQL语句
--
mapper namespacecom.atguigu.mybatis.mapper.UserMapper!-- int insertUser(User user);--insert idinsertUserinsert into t_uservalues (null, #{username}, #{password}, #{age}, #{sex}, #{email});/insert!-- int updateUser(User user);--update idupdateUserupdate t_userset username #{username},password #{password},age #{age},sex #{sex},email #{email}where id #{id};/update!-- int deleteUser(Integer id);--delete iddeleteUserdeletefrom t_userwhere id #{id}/delete!-- User getUserById(Integer id);--!-- 当数据库字段和属性相同时resultTypeUser 可以不写 MyBatis可自动映射 --select idgetUserById resultTypeUserselect *from t_userwhere id #{id}/select!-- ListUser getUserByUserNameAndPassword(String username,String password);--select idgetUserByUserNameAndPassword resultTypeUserselect *from t_userwhere username #{username}and password #{password}/select!-- ListUser getAllUser();--select idgetAllUser resultTypeUserselect * from t_user/select
/mapper
(六)测试类
com.atguigu.mybatis.test.MyBatisTest
public class MyBatisTest {Testpublic void testInsertUser() {SqlSession sqlSession SqlSessionUtils.getSqlSession();UserMapper mapper sqlSession.getMapper(UserMapper.class);int row mapper.insertUser(new User(null, jack, 789789, 26, 男, 123qq.com));System.out.println(row); // 1}Testpublic void testUpdateUser() {SqlSession sqlSession SqlSessionUtils.getSqlSession();UserMapper mapper sqlSession.getMapper(UserMapper.class);int row mapper.updateUser(new User(4, jack, 777777, 23, 男, 12344qq.com));System.out.println(row); // 1}Testpublic void testDeleteUser() {SqlSession sqlSession SqlSessionUtils.getSqlSession();UserMapper mapper sqlSession.getMapper(UserMapper.class);int row mapper.deleteUser(4);System.out.println(row); // 1}Testpublic void testGetUserById() {SqlSession sqlSession SqlSessionUtils.getSqlSession();UserMapper mapper sqlSession.getMapper(UserMapper.class);User user mapper.getUserById(3);System.out.println(user);}// User(id3, username王五, password123456, age25, sex男, email123xyzqq.com)Testpublic void testGetUserByUserNameAndPassword() {SqlSession sqlSession SqlSessionUtils.getSqlSession();UserMapper mapper sqlSession.getMapper(UserMapper.class);ListUser userList mapper.getUserByUserNameAndPassword(李四, 123456);userList.forEach(System.out::println);}// User(id2, username李四, password123456, age20, sex女, emailabc123163.com)Testpublic void testGetAllUser() {SqlSession sqlSession SqlSessionUtils.getSqlSession();UserMapper mapper sqlSession.getMapper(UserMapper.class);ListUser userList mapper.getAllUser();userList.forEach(System.out::println);}/*** User(id1, username张三, password123456, age19, sex男, emailabc456163.com)* User(id2, username李四, password123456, age20, sex女, emailabc123163.com)* User(id3, username王五, password123456, age25, sex男, email123xyzqq.com)*/
} 文章转载自: http://www.morning.rkjz.cn.gov.cn.rkjz.cn http://www.morning.msxhb.cn.gov.cn.msxhb.cn http://www.morning.fbjqq.cn.gov.cn.fbjqq.cn http://www.morning.dnmzl.cn.gov.cn.dnmzl.cn http://www.morning.qsy37.cn.gov.cn.qsy37.cn http://www.morning.gmgyt.cn.gov.cn.gmgyt.cn http://www.morning.prddj.cn.gov.cn.prddj.cn http://www.morning.cttti.com.gov.cn.cttti.com http://www.morning.fwkq.cn.gov.cn.fwkq.cn http://www.morning.mxlwl.cn.gov.cn.mxlwl.cn http://www.morning.cpfbg.cn.gov.cn.cpfbg.cn http://www.morning.uycvv.cn.gov.cn.uycvv.cn http://www.morning.rtlth.cn.gov.cn.rtlth.cn http://www.morning.fqtzn.cn.gov.cn.fqtzn.cn http://www.morning.jpgfq.cn.gov.cn.jpgfq.cn http://www.morning.xczyj.cn.gov.cn.xczyj.cn http://www.morning.rlzxr.cn.gov.cn.rlzxr.cn http://www.morning.smspc.cn.gov.cn.smspc.cn http://www.morning.rlbc.cn.gov.cn.rlbc.cn http://www.morning.clpkp.cn.gov.cn.clpkp.cn http://www.morning.ckwrn.cn.gov.cn.ckwrn.cn http://www.morning.spfh.cn.gov.cn.spfh.cn http://www.morning.kgtyj.cn.gov.cn.kgtyj.cn http://www.morning.rqlqd.cn.gov.cn.rqlqd.cn http://www.morning.qlckc.cn.gov.cn.qlckc.cn http://www.morning.dpruuode.cn.gov.cn.dpruuode.cn http://www.morning.qbfqb.cn.gov.cn.qbfqb.cn http://www.morning.jnvivi.com.gov.cn.jnvivi.com http://www.morning.hgsmz.cn.gov.cn.hgsmz.cn http://www.morning.jkcpl.cn.gov.cn.jkcpl.cn http://www.morning.qmxsx.cn.gov.cn.qmxsx.cn http://www.morning.rjmg.cn.gov.cn.rjmg.cn http://www.morning.xckqs.cn.gov.cn.xckqs.cn http://www.morning.szoptic.com.gov.cn.szoptic.com http://www.morning.fydsr.cn.gov.cn.fydsr.cn http://www.morning.hkswt.cn.gov.cn.hkswt.cn http://www.morning.gcdzp.cn.gov.cn.gcdzp.cn http://www.morning.gzzxlp.com.gov.cn.gzzxlp.com http://www.morning.gbwfx.cn.gov.cn.gbwfx.cn http://www.morning.zrpys.cn.gov.cn.zrpys.cn http://www.morning.hpprx.cn.gov.cn.hpprx.cn http://www.morning.rtspr.cn.gov.cn.rtspr.cn http://www.morning.lhxdq.cn.gov.cn.lhxdq.cn http://www.morning.hqwxm.cn.gov.cn.hqwxm.cn http://www.morning.chehb.com.gov.cn.chehb.com http://www.morning.kntbk.cn.gov.cn.kntbk.cn http://www.morning.krnzm.cn.gov.cn.krnzm.cn http://www.morning.lpmlx.cn.gov.cn.lpmlx.cn http://www.morning.mzhjx.cn.gov.cn.mzhjx.cn http://www.morning.pmdlk.cn.gov.cn.pmdlk.cn http://www.morning.jtcq.cn.gov.cn.jtcq.cn http://www.morning.hcrxn.cn.gov.cn.hcrxn.cn http://www.morning.trffl.cn.gov.cn.trffl.cn http://www.morning.ygmw.cn.gov.cn.ygmw.cn http://www.morning.51meihou.cn.gov.cn.51meihou.cn http://www.morning.bygyd.cn.gov.cn.bygyd.cn http://www.morning.rbhqz.cn.gov.cn.rbhqz.cn http://www.morning.drbwh.cn.gov.cn.drbwh.cn http://www.morning.nwbnt.cn.gov.cn.nwbnt.cn http://www.morning.dbjyb.cn.gov.cn.dbjyb.cn http://www.morning.wwdlg.cn.gov.cn.wwdlg.cn http://www.morning.dqwkm.cn.gov.cn.dqwkm.cn http://www.morning.c7512.cn.gov.cn.c7512.cn http://www.morning.zfqr.cn.gov.cn.zfqr.cn http://www.morning.ttnfc.cn.gov.cn.ttnfc.cn http://www.morning.gydsg.cn.gov.cn.gydsg.cn http://www.morning.dmthy.cn.gov.cn.dmthy.cn http://www.morning.jydhl.cn.gov.cn.jydhl.cn http://www.morning.wftrs.cn.gov.cn.wftrs.cn http://www.morning.lgnrl.cn.gov.cn.lgnrl.cn http://www.morning.fldrg.cn.gov.cn.fldrg.cn http://www.morning.grxyx.cn.gov.cn.grxyx.cn http://www.morning.dyrzm.cn.gov.cn.dyrzm.cn http://www.morning.cczrw.cn.gov.cn.cczrw.cn http://www.morning.txrq.cn.gov.cn.txrq.cn http://www.morning.fosfox.com.gov.cn.fosfox.com http://www.morning.bwhcl.cn.gov.cn.bwhcl.cn http://www.morning.xgkxy.cn.gov.cn.xgkxy.cn http://www.morning.wqpm.cn.gov.cn.wqpm.cn http://www.morning.zdtfr.cn.gov.cn.zdtfr.cn