复习Mybatis-搭建java项目

IDE:Myeclipse2018

database:MySQL

JDK:JAVASE-10

1.创建java项目,项目结构如下图所示

java项目初始结构

2.创建lib目录,将jar包放进lib目录下,全选 Build path-->add to build path

Mybatis框架所需jar包

 

此时项目结构

3.写db.properties文件

driverName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test1?useSSL=false&serverTimezone=UTC
userName=root
password=xxxx

4.写mybatis.xml配置文件,读取db.properties文件,配置数据库环境,读取mapper.xml文件

<!-- .DTD文件是xml格式文件的约束文件,它约束了该xml文件使用的标签以及标签之间的关系 -->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
 
 <!-- 根标签 -->
<configuration>

<!-- properties 标签代表 加载指定路径的properties文件 -->
<properties resource="db.properties"></properties>


<!-- 可以配置很多数据库环境 -->
<environments default="development">

    <environment id="development">
        
        <!-- 使用jdbc事务管理 -->
        <transactionManager type="JDBC"/>
        
        <!-- 数据库连接池 -->
        <dataSource type="POOLED">
            <!-- 数据库连接的参数 -->
            <property name="driver" value="${driverName}"/>
            <property name="url" value="${url}"/>
            <property name="username" value="${userName}"/>
            <property name="password" value="${password}"/>
        </dataSource>

    </environment>

</environments>


<!-- 加载 mapper映射文件 -->
<mappers>
    <mapper resource="UserMapper.xml"/>

</mappers>


</configuration>

5.写实体类、dao层接口

package com.entity;

import java.util.Date;

public class User {

    private int userId;
    private String user_name;//此时要保证属性名字和数据库的字段名一样
    private String password;
    private String email;
    private String apartment;
    private String tel;
    private String address;
    private Date createTime;

    public int getUserId() {
        return userId;
    }
    public void setUserId(int userId) {
        this.userId = userId;
    }
    public String getuser_name() {
        return user_name;
    }
    public void setuser_name(String user_name) {
        this.user_name = user_name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getApartment() {
        return apartment;
    }
    public void setApartment(String apartment) {
        this.apartment = apartment;
    }
    public String getTel() {
        return tel;
    }
    public void setTel(String tel) {
        this.tel = tel;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}
public interface UserDao {

    List<User> findAll();

}

6.写mapper.xml

<?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">

<mapper namespace="com.dao.UserDao">

<select id="findAll" resultType="com.entity.User">
    select * from t_user
</select>

</mapper>

7.写测试类 ,运行

public class MybatisTest {
    public static void main(String[] args) {
      //构建配置文件的输入流
        InputStream input;
        try {
            input = Resources.getResourceAsStream("mybatis.xml");
            SqlSessionFactory sqlSessionFactory =
                    new SqlSessionFactoryBuilder().build(input);
            SqlSession session = sqlSessionFactory.openSession();

            List<User> users = session.selectList("com.dao.UserDao.findAll");
            for(User user : users) {
                System.out.println(user.getuser_name());
            }

            session.close();

        } catch (IOException e) {
        }

    }

}

8.我遇到的问题

java.lang.ClassNotFoundException: Cannot find class: com.mysql.cj.jdbc.Driver

就是驱动找不到,原因是之前的驱动版本太低,后来改成8.0就可以正常运行啦!

9.如果想要实体类的属性名可以不和字段名一样的话,可以在mapper.xml中写上ORM映射,之前的sql语句记得把resulttype改成resultmap

<resultMap type="_student" id="student">
	<!-- 要将 实体类的属性 与 数据库的字段名对应起来 -->
	<!-- 主键设置 -->
	<id property="uid" column="u_id"/>
	
	<!-- 其他字段的映射 -->

	<result property="uPwd" column="u_Pwd"/>
	<result property="uRegtime" column="u_Regtime"/>
	
	<!-- 没有写的字段,默认ResultSet 对象会获取 与 实体属性名一样的 字段名 -->

</resultMap>

10.项目结构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值