Mybatis学习笔记01

1.打开idea创建一个maven项目在pom.xml导入依赖包;

   <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
        </dependency>
    </dependencies>

2.在resources创建xml主配置文件;填写好数据库信息;

<?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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSl=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="数据库名称"/>
                <property name="password" value="数据库密码"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="Usermapper.xml"/>
    </mappers>
</configuration>

3.创建工具类
例如在java文件夹内创建包com.feng.dao文件夹,在同级目录feng下创建一个utils文件夹,在这个文件夹内创建一个工具类MybatisUlis类写入

//提高作用域
private static SqlSessionFactory sqlSessionFactory;
    static {
        try {
        //获取资源配置文件
            String resource = "mybatis-configer.xml";
        //解析资源文件
            InputStream inputStream = Resources.getResourceAsStream(resource);
         //创建工厂
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //获取工厂对象sqlsession
    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
    }

工具类格式(取自官方文档):
String resource = “org/mybatis/example/mybatis-config.xml”;
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

4.创建实体类user,属性对应数据库表中的数据
在com.feng.userdata 创建一个类

private int id;
    private String name;
    private  String passwd;public user() {
    }

    public user(int id, String name, String passwd) {
        this.id = id;
        this.name = name;
        this.passwd = passwd;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPasswd() {
        return passwd;
    }

    public void setPasswd(String passwd) {
        this.passwd = passwd;
    }

    @Override
    public String toString() {
        return "user{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", passwd='" + passwd + '\'' +
                '}';
    }

5.在dao文件夹内写一个接口UserDao

public interface UserDao {
	//声明一个存储着user类型的列表
    List<user> getUserlist();
}

还在里面写了UserDao接口的xml映射文件(这个xml文件不一定写在dao文件夹内),此时将两者绑定在一起,通俗点理解就是Usermapper.xml是Userdao的实现类,所以当后面我们要获取sql语句的时候我们可以通过Userdao接口的对象来获取,也就是Userdao.class;
Usermapper.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.feng.dao.UserDao">
	//返回值类型必须使用全限定类名!!!
	//id要与接口内方法名一样,类似jdbc重写方法
    <select id="getUserlist" resultType="com.pojo.user">
    //数据库.表名
        select * from mybatis.user;
    </select>
</mapper>

6.测试
在test包内的java文件夹内创建一个和UserDao接口一样的路径,在创建一个测试类UserTest

	@Test
    public void test(){
        //通过我们写的工具类来获取产品sqlsession
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        //获取产品里的sql语句并且执行
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        List<user> userList = userDao.getUserlist();
		//遍历用户列表
        for (user users: userList) {
            System.out.println(users);
        }
        //关闭产品
        sqlSession.close();
    }

出现过的问题小结:
1.实现类xml文档的id不与接口内方法相同造成
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

2.出现Usermapper xml文档未找到(使用class注入用".“使用resource路径用”/")
主配置文件需要注册

<mappers>
		//此时的Usermapper.xml文档也放在resources文件夹下,所以使用相对路径
        <mapper resource="Usermapper.xml"/>
</mappers>

3.IDEA连接数据库时候出现问题
需要更改时区成GMT

4.连接数据库后未出现表格
需要点击Schemas导入所需要的数据库表格

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
**数字乡村解决方案摘要** **国家战略与乡村振兴** 中国正实施国家大数据战略,以加快数字中国的建设,整合数据资源,保障数据安全,并推动产业升级。2023年中央一号文件强调了乡村振兴战略,旨在通过产业兴旺、生态宜居、乡风文明、治理有效和生活富裕五大方面,实现农业农村现代化。 **数字乡村建设的重要性** 数字乡村建设是乡村振兴战略的重要组成部分,通过整合资源数据,推动物联网和遥感技术在农业中的应用,促进农业现代化。它被视为促进乡村转型发展的新方向,是数字化在农业农村经济社会发展中的应用。 **关键要素与效益** 数字乡村建设的关键要素包括数据资源整合、产业促进、农业发展规模化和标准化,以及改善乡村生活服务体系。预期效益包括提升国家治理能力,实现政府决策科学化和社会治理精准化,同时推动公共服务高效化。 **体系架构与数据融合** 数字乡村的体系架构包括乡村生态、基层治理、慧治、慧享、慧融、慧美、慧智和慧图等多个方面,实现城乡、政企、农户各级平台及服务的融合。数据融合是核心,整合乡村人口、产值、环境监测等多方面数据,为乡村治理和产业发展提供支撑。 **多业务协同与智慧治理** 数字乡村通过多业务协同应用平台,实现乡村物联网的布局和触达,涵盖农业生产、农资厂商、消费者等环节。区块链技术在农产品质量溯源中的应用,确保了产品全过程可追溯。乡村智慧治理通过村务管理、财务管理等方面提升治理效能,实现绿色发展理念。综合服务体系通过“互联网+服务”模式,提供便民服务和乡村经济发展支持,推动乡村全面振兴。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值