妇产医院网站源码西安网站建设方案优化
- 作者: 五速梦信息网
- 时间: 2026年03月21日 11:15
当前位置: 首页 > news >正文
妇产医院网站源码,西安网站建设方案优化,苏州网站优化企业,企业宣传册模板Mybatis的官方文档是真的非常好#xff01;非常好#xff01; 点一下我呗#xff1a;Mybatis官方文档 MyBatis 是一款优秀的持久层框架#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可…Mybatis的官方文档是真的非常好非常好 点一下我呗Mybatis官方文档 MyBatis 是一款优秀的持久层框架它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJOPlain Old Java Objects普通老式 Java 对象为数据库中的记录。
持久层 负责将数据到保存到数据库的那一层代码。 以后开发我们会将操作数据库的Java代码作为持久层。而Mybatis就是对jdbc代码进行了封装。 JavaEE三层架构表现层、业务层、持久层
快速入门示例
需求查询user表中所有的数据
1创建user表添加数据
create database mybatis;
use mybatis;drop table if exists tb_user;create table tb_user(id int primary key auto_increment,username varchar(20),password varchar(20),gender char(1),addr varchar(30)
);INSERT INTO tb_user VALUES (1, zhangsan, 123, 男, 北京);
INSERT INTO tb_user VALUES (2, 李四, 234, 女, 天津);
INSERT INTO tb_user VALUES (3, 王五, 11, 男, 西安);select * from tb_user tu ;2创建模块导入坐标
在创建好的模块中的 pom.xml 配置文件中添加依赖的坐标 propertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.target/propertiesdependencies!–mybatis 依赖–dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.5/version/dependency!–mysql 驱动–dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.46/version/dependency!–junit 单元测试–dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13/versionscopetest/scope/dependency!– 添加slf4j日志api –dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion1.7.20/version/dependency!– 添加logback-classic依赖 –dependencygroupIdch.qos.logback/groupIdartifactIdlogback-classic/artifactIdversion1.2.3/version/dependency!– 添加logback-core依赖 –dependencygroupIdch.qos.logback/groupIdartifactIdlogback-core/artifactIdversion1.2.3/version/dependency/dependencies3需要在项目的 resources 目录下创建logback的配置文件
?xml version1.0 encodingUTF-8?
configuration!–CONSOLE 表示当前的日志信息是可以输出到控制台的。–appender nameConsole classch.qos.logback.core.ConsoleAppenderencoderpattern[%level] %cyan([%thread]) %boldGreen(%logger{15}) - %msg %n/pattern/encoder/appenderlogger namecom.itheima levelDEBUG additivityfalseappender-ref refConsole//logger!–level:用来设置打印级别大小写无关TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF 默认debugroot可以包含零个或多个appender-ref元素标识这个输出位置将会被本日志级别控制。–root levelDEBUGappender-ref refConsole//root
/configuration4编写 MyBatis 核心配置文件
在模块下的 resources 目录下创建mybatis的配置文件 mybatis-config.xml
configurationtypeAliasespackage namecom.itheima.pojo//typeAliases!–environments配置数据库连接环境信息。可以配置多个environment通过default属性切换不同的environment–environments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLED!–数据库连接信息–property namedriver valuecom.mysql.jdbc.Driver/property nameurl valuejdbc:mysql:///mybatis?useSSLfalse/property nameusername valueroot/property namepassword valuefage//dataSource/environmentenvironment idtesttransactionManager typeJDBC/dataSource typePOOLED!–数据库连接信息–property namedriver valuecom.mysql.jdbc.Driver/property nameurl valuejdbc:mysql:///mybatis?useSSLfalse/property nameusername valueroot/property namepassword valuefage//dataSource/environment/environmentsmappers!–加载sql映射文件–mapper resourcecom/itheima/mapper/UserMapper.xml/!–Mapper代理方式–!–package namecom.itheima.mapper/–/mappers/configuration在核心配置文件的 environments 标签中其实是可以配置多个 environment 使用 id 给每段环境起名在 environments 中使用 default环境id 来指定使用哪儿段配置。我们一般就配置一个 environment 即可。typeAliases在核心配置文件中配置类型别名typeAliases也就意味着给pojo包下所有的类起了别名别名就是类名不区分大小写mappers如果Mapper接口名称和SQL映射文件名称相同并在同一目录下则可以使用包扫描的方式简化SQL映射文件的加载但是推荐第二种方式
5编写 SQL 映射文件 – 统一管理sql语句解决硬编码问题
在模块的 resources 目录下创建映射配置文件 UserMapper.xml
!–namespace:名称空间
–mapper namespacecom.itheima.mapper.UserMapper!–statement–select idselectAll resultTypeuserselect *from tb_user;/select
!– select idselectById resultTypeuserselect *from tb_user where id #{id};/select–select idselect resultTypeuserselect *from tb_userwhereusername #{arg0}and password #{param2}/select/mapper6,在 com.itheima.pojo 包下创建 User类
public class User {private Integer id;private String username;private String password;private String gender;private String addr;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 String getGender() {return gender;}public void setGender(String gender) {this.gender gender;}public String getAddr() {return addr;}public void setAddr(String addr) {this.addr addr;}Overridepublic String toString() {return User{ id id , username username \ , password password \ , gender gender \ , addr addr \ };}
}
7在 com.itheima 包下编写 MybatisDemo 测试类
public class MyBatisDemo {public static void main(String[] args) throws IOException {//1. 加载mybatis的核心配置文件获取 SqlSessionFactoryString resource mybatis-config.xml;InputStream inputStream Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream);//2. 获取SqlSession对象用它来执行sqlSqlSession sqlSession sqlSessionFactory.openSession();//3. 执行sqlListUser users sqlSession.selectList(com.itheima.mapper.UserMapper.selectAll);//参数是一个字符串该字符串必须是映射配置文件的namespace.idSystem.out.println(users);//4. 释放资源sqlSession.close();}
}
运行结果 查出来的数据与库里数据一致。
8Mapper代理开发
上面的是采用加载sql映射文件的方式它也存在硬编码的问题
ListUser users sqlSession.selectList(com.itheima.mapper.UserMapper.selectAll);这里调用 selectList() 方法传递的参数是映射配置文件中的 namespace.id值。这样写也不便于后期的维护。 如果使用 Mapper 代理方式如下则不存在硬编码问题:
//3.1 获取UserMapper接口的代理对象
ListUser users UserMapper userMapper sqlSession.getMapper(UserMapper.class);ListUser users userMapper.selectAll();运行后发现结果正确
通过上面的描述可以看出 Mapper 代理方式的目的
解决原生方式中的硬编码简化后期执行SQL
Mybatis 官网也是推荐使用 Mapper 代理的方式
使用Mapper代理要求
使用Mapper代理方式必须满足以下要求 定义与SQL映射文件同名的Mapper接口并且将Mapper接口和SQL映射文件放置在同一目录下。如下图 设置SQL映射文件的namespace属性为Mapper接口全限定名 在 Mapper 接口中定义方法方法名就是SQL映射文件中sql语句的id并保持参数类型和返回值类型一致 注意 如果Mapper接口名称和SQL映射文件名称相同并在同一目录下则可以使用包扫描的方式简化SQL映射文件的加载。也就是将核心配置文件的加载映射配置文件的配置修改为
mappers!–加载sql映射文件–!– mapper resourcecom/itheima/mapper/UserMapper.xml/–!–Mapper代理方式–package namecom.itheima.mapper/
/mappers类型别名
在映射配置文件中的 resultType 属性需要配置数据封装的类型类的全限定名。而每次这样写是特别麻烦的Mybatis 提供了 类型别名(typeAliases) 可以简化这部分的书写。
首先需要现在核心配置文件中配置类型别名也就意味着给pojo包下所有的类起了别名别名就是类名不区分大小写。内容如下
typeAliases!–name属性的值是实体类所在包–package namecom.itheima.pojo/
/typeAliases通过上述的配置我们就可以简化映射配置文件中 resultType 属性值的编写
mapper namespacecom.itheima.mapper.UserMapperselect idselectAll resultTypeuserselect * from tb_user;/select
/mapper[声明]内容主要来源黑马程序员网上资源学习
- 上一篇: 付网站建设费如果做账百度百科怎么创建
- 下一篇: 妇女之家网站建设方案在线网站建设平台
相关文章
-
付网站建设费如果做账百度百科怎么创建
付网站建设费如果做账百度百科怎么创建
- 技术栈
- 2026年03月21日
-
付公司网站建设费用会计分录WordPress导购模板
付公司网站建设费用会计分录WordPress导购模板
- 技术栈
- 2026年03月21日
-
付费小说网站怎么做福州网龙网络公司
付费小说网站怎么做福州网龙网络公司
- 技术栈
- 2026年03月21日
-
妇女之家网站建设方案在线网站建设平台
妇女之家网站建设方案在线网站建设平台
- 技术栈
- 2026年03月21日
-
附近旧模板出售市场seo网站优化方案
附近旧模板出售市场seo网站优化方案
- 技术栈
- 2026年03月21日
-
附近哪里有计算机培训班网站内容优化的重要性
附近哪里有计算机培训班网站内容优化的重要性
- 技术栈
- 2026年03月21日






