myBatis

User实体类

package com.atguigu.mybatis.pojo;

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;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                ", 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;
    }
}

Interface接口

public interface ParameterMapper {
    /**
     * MyBatis面向接口编程的两个一致
     * 1、映射文件的namespace要和mapper接口的全类名保持一致
     * 2、映射文件中SQL语句的id要和mapper接口中的方法名一致
     *<p>
     *--实体--mapper接口--映射
     */

    /**
     *验证登录(使用@param)
     */
    User checkLoginByParam(@Param("sername") String username,@Param("assword") String password);

    /**
     *添加用户信息
     */
    int insertUser(User user);

    /**
     *验证登录(参数为map)
     */
    User checkLoginByMap(Map<String,Object> map);

    /**
     *验证登录
     */
    User checkLogin(String username,String password);

    /**
     *根据用户名查询用户信息
     */
    User getUserByUsername(String username);

    /**
     *查询所有的员工信息
     *@return
     */
    List<User> getAllUser();



}

连接数据库

<?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>
    <!--连接jdbc-->
    <properties resource="jdbc.properties"/>

    <!--设置类型别名-->
    <typeAliases>
        <!--<typeAlias type="com.atguigu.mybatis.pojo.User" alias="test"></typeAlias>-->
        <!--以包为单位设置别名-->
        <package name="com.atguigu.mybatis.pojo"/>
    </typeAliases>

    <!--连接数据库的坏境-->
    <environments default="development">
        <!--
       environment:配置某个具体的环境
       属性:id表示连接数据库的环境变量的唯一标识,不能重复
       -->
        <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>
        <!--<mapper resource="org/mybatis/example/BlogMapper.xml"/>-->
        <package name="com.atguigu.mybatis.mapper"/>
    </mappers>
</configuration>

测试类

public class ParameterMapperTest {

    /**
     * MyBatis获取参数值的两种方式:${}#{}
     * ${}本质字符串拼接
     * #{}本质占位符赋值
     * MyBatis获取参数值的各种情况:
     * 1mapper接口方法的参数为单个的字面量类型
     *可以通过${}#{}以任意的名称获取参数值,但是需要注意${}的单引号问题
     * 2mapper接口方法的参数为多个时
     *此时MyBatis会将这些参数放在一个map集合中,以两种方式进行存储
     * a>arg0arg1...为键,以参数为值
     * b>param1,param2...为键,以参数为值
     *因此只需要通过#{}${}以键的方式访问值即可,但是需要注意${}的单引号问题
     * 3.mapper接口方法的参数有多个时,可以手动将这些参数放在一个map中存储
     *只需要通过#{}${}以键的方式访问值即可,但是需要注意${}的单引号问题
     * 4mapper接口方法的参数是实体类类型的按参数
     *只需要通过#{}${}以属性的方式访问属性值即可,但是需要注意${}的单引号问题
     * 5、使用@param注解命名参数
     *此时MyBatis会将这些参数放在一个map集合中,以两种方式进行存储
     * a>@Param注解的值为键,以参数为值
     * b>param1param2...为键,以参数为值
     *因此只需要通过#{}${}以键的方式访问值即可,但是需要注意${}的单引号问题
     */

    //下一步  进入到某个方法中 强制进入 从某个方法中返回 返回上一个断点 调转到光标所在的一行

    @Test
    public void testCheckLoginByParam(){
        SqlSession sqlSession =SqlSessionUtils.getSqlSession();
        ParameterMapper mapper=sqlSession.getMapper(ParameterMapper.class);
        User user =mapper.checkLoginByParam("admin","123456");
        System.out.println(user);
    }

    @Test
    public void testCheckLoginsert() {
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);
        int result = mapper.insertUser(new User(null, "李四","123",23,"男","123@qq.com"));
        System.out.println(result);
    }


    @Test
    public void testCheckLoginByMap() {
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);
        Map<String, Object> map = new HashMap<>();
        map.put("username", "admin");
        map.put("password", "123456");
        User user = mapper.checkLoginByMap(map);
        System.out.println(user);
    }


    @Test
    public void testCheckLogin() {
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);
        User user = mapper.checkLogin("admin", "123456");
        System.out.println(user);
    }


    @Test
    public void testGetUserByUsername() {
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);
        User user = mapper.getUserByUsername("admin");
        System.out.println(user);
    }


    @Test
    public void testGetAllUser() {
        SqlSession sqlSession = SqlSessionUtils.getSqlSession();
        ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);
        List<User> list = mapper.getAllUser();
        list.forEach(user -> System.out.println(user));
    }

    @Test
    public void testJDBC() throws Exception {
        String username = "admin";
        Class.forName("");
        Connection connection = DriverManager.getConnection("", "", "");
        //PreparedStatement ps = connection.prepareStatement("select*from t_user where username='" + username + "'");
        PreparedStatement ps = connection.prepareStatement("select * from t_user where username=?");
        ps.setString(1, username);

    }

}


版权声明:本文为weixin_49770265原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。