一、提示模板配置与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号
浙公网安备 33010602011771号