工具:idea 2021.3.0+maven (视频来源:硅谷,白嫖党懂的都懂)
包依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.atchengdu</groupId>
<artifactId>mynatis_maven02</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
</project>
mybatis的默认配置文件
<?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>
<properties resource="jdbc.properties"></properties>
<typeAliases>
<package name="com.atchengdu.mybatis.polo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<package name="com.atchengdu.mybatis.mapper"/>
</mappers>
</configuration>
mapper接口配置文件
<?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">
<!--SQL标签-->
<mapper namespace="com.atchengdu.mybatis.mapper.Parametermapper">
<!-- List<User> getalluser(); -->
<select id="getalluser" resultType="user">
select *from t_user;
</select>
<!-- User getuserByusername(String username);-->
<select id="getuserByusername" resultType="user">
select *from t_user where username = #{username};
</select>
<!-- User checklogin(String username ,String password);-->
<select id="checklogin" resultType="user">
select *from t_user where username=#{arg0} and password=#{arg1};
</select>
<!-- User checkloginbyMap(Map<String,Object> map);-->
<select id="checkloginbyMap" resultType="user">
select *from t_user where username=#{username} and password=#{password};
</select>
<!-- void Adduser(User user);-->
<insert id="Adduser">
insert into t_user values (null,#{username},#{password},#{age},#{sex},#{email});
</insert>
<!-- User yanzhanlogin(@Param("username") String username,@Param("password") String password);-->
<select id="yanzhanlogin" resultType="user">
select *from t_user where username=#{username} and password=#{password};
</select>
</mapper>
User类
package com.atchengdu.mybatis.polo;
public class User {
private Integer id;
private String username;
private String password;
private Integer age;
private String sex;
private String email;
public User() {
}
public User(Integer id, String username, String password, Integer age, String sex, String email) {
this.id = id;
this.username = username;
this.password = password;
this.age = age;
this.sex = sex;
this.email = email;
}
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 Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
", email='" + email + '\'' +
'}';
}
}
user类对应的mapper接口
package com.atchengdu.mybatis.mapper;
import com.atchengdu.mybatis.polo.User;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface Parametermapper {
List<User> getalluser();
User getuserByusername(String username);
User checklogin(String username ,String password);
User checkloginbyMap(Map<String,Object> map);
void Adduser(User user);
//使用注解来验证登录 需要使用注解的方式
//mybatis可以把参数以自己设置的键来存放数据
User yanzhanlogin(@Param("username") String username,@Param("password") String password);
}
测试类以及参数注入的五种方式
package com.atchengdu.mybatis;
import com.atchengdu.mybatis.mapper.Parametermapper;
import com.atchengdu.mybatis.polo.User;
import com.atchengdu.mybatis.utils.sqlsessionutil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
public class test {
/**mybatis的两种参数的输入方法${} #{}
* ${} 字符串拼接 #{}占位符赋值
* mybatis中注入参数的两种情况
* 1.单个参数 使用#{parameter} '${parameter}'
* 2.多个参数 mybatis会自动将参数存入map集合中 #{agr0} #{arg1} #{arg...}
* 3.map集合作为参数
* 4.mapper接口的参数是一个实体类参数
* 5.命名参数使用 @param注解
* @return 建议使用 (4) (5) 就可以了
*/
@Test
public void Test(){
SqlSession sqlsession = sqlsessionutil.getSqlsession();
Parametermapper mapper = sqlsession.getMapper(Parametermapper.class);
for(User user:mapper.getalluser()){
System.out.println(user);
}
}
@Test
public void Test2(){
SqlSession sqlsession = sqlsessionutil.getSqlsession();
Parametermapper mapper = sqlsession.getMapper(Parametermapper.class);
System.out.println( mapper.getuserByusername("张三"));
}
@Test
public void Test3(){
SqlSession sqlsession = sqlsessionutil.getSqlsession();
Parametermapper mapper = sqlsession.getMapper(Parametermapper.class);
System.out.println( mapper.checklogin("张三","123456"));
}
@Test
public void Test4(){
SqlSession sqlsession = sqlsessionutil.getSqlsession();
Parametermapper mapper = sqlsession.getMapper(Parametermapper.class);
Map<String ,Object> map=new HashMap<>();
map.put("username","admin");
map.put("password","123456");
System.out.println(mapper.checkloginbyMap(map));
}
@Test
public void Test5(){
SqlSession sqlsession = sqlsessionutil.getSqlsession();
Parametermapper mapper = sqlsession.getMapper(Parametermapper.class);
User user=new User(null,"xiaoxiao","123456",19,"女","xiaoixao@qq.com");
mapper.Adduser(user);
}
@Test
public void Test6(){
SqlSession sqlsession = sqlsessionutil.getSqlsession();
Parametermapper mapper = sqlsession.getMapper(Parametermapper.class);
System.out.println( mapper.yanzhanlogin("张三","123456"));
}
}