一、提示模板配置与Mybatis
1.Mybatis简介
java基础(面向对象)--->java高级特性--->web前端(html、css、js、jquery)--->mysql--->jsp/servlet(easyui、dbuils、redis)--->ssm(mybatis、spring、springMVC)--->maven--->ssh(struts2、spring、hibernate)---->svn--->(springboot linux)等
面向对象--->面向接口--->面向切面(面向sm)--->面向组件--->面向服务(duboo)
持久层框架:{mybatis(半自动化框架):操作数据库时需要使用sql;hibernate(全自动话框架):不需要使用sql语句。}
Mybatis本身是一款数据库框架
2.Mybatis环境搭建(重要)
第一步:导入Mybatis需要的jar包
第二步:书写Mybatis主配置文件(.properties,Mybatis.XML文件)
首先创建在工程文件中创建一个Source folder文件夹,命名为resource
在上述文件夹下创建文件命名为:mybatis.xml
配置时候一定要注意url中value的书写
点击查看代码
<?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>
<!-- 配置数据库连接的环境:driver url username password -->
<environments default="mysql">
<!-- 配置mysql -->
<environment id="mysql">
<!-- 配置事务 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!-- xml中配置错误,例如需要转义的字符没有转义。url中的&需要转译为&
注意?后要加useSSL=false
有些版本的MySQL如果未设置显式选项,则必须默认建立SSL连接,为了符合不使用SSL的现有应用程序,您可以将verifyServerCertificate属性设置为false,您需要通过设置useSSL=false显式禁用SSL,或者设置useSSL=true并提供用于服务器证书验证的信任库
解决方案:在MySQL连接数据库字符串后加上参数&useSSL=false。
-->
<property name="url" value="jdbc:mysql://localhost:3306/dt48_mybatis?useSSL=false&serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true"/>
<property name="username" value="root"/>
<property name="password" value="6174"/>
</dataSource>
</environment>
<!-- <environment id="oracle"></environment> -->
</environments>
<!-- 关联局部配置文件 -->
<mappers>
<mapper resource="cn/java/dao/impl/UserDaoImpl.xml"/>
</mappers>
</configuration>
第三步:书写局部配置文件(xxx.XML)
这个文件要创建在与dao层的实现中类创建,并且要与类同名以.xml结尾
第四步:启动Mybatis框架进行,
点击查看代码
/**
* Project Name:dt48_mybatis1
* File Name:UserDaoImpl.java
* Package Name:cn.java.dao.impl
* Date:2022年3月26日下午8:46:20
* Copyright (c) 2022, bluemobi All Rights Reserved.
*
*/
package cn.java.dao.impl;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
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 cn.java.entity.User;
/**
* Description: <br/>
* Date: 2022年3月26日 下午8:46:20 <br/>
*
* @author LiuCE
* @version
* @see
*/
public class UserDaoImpl {
/**
*
* Description: 获取users表中的所有数据记录<br/>
* select *from users;---返回--->List<Bean>或者List<Map<String,Object>>
*
* @author LiuCE
* @throws IOException
*/
@Test
public void getAllUsers() throws IOException {
// 1.启动Mybatis框架,SqlSession----->SqlSessionFactory------>SqlSessionFactoryBuilder
SqlSessionFactoryBuilder sfb = new SqlSessionFactoryBuilder();
// 2.将Mybatis文件转化为流
InputStream ins = Resources.getResourceAsStream("mybatis.xml");
SqlSessionFactory ssf = sfb.build(ins);
SqlSession session = ssf.openSession();
// 3.调用局部配置文件里的sql语句
List<User> userList = session.selectList("cn.java.dao.impl.UserDaoImpl.getAllUsers");
for (User user : userList) {
System.out.println(user);
}
}
}
7.XML文件提示模板配置
8.Mybatis中$和#的区别
正确如下图
1.#号获取参数值时,默认会把参数当做字符串处理,在参数中间会添加单引号。
2.#获取参数时可以防止sql注入;$不能防止sql注入。因此能用#号时最好不用$







浙公网安备 33010602011771号