标签:有一个 bad for ash prope 代理 driver mysq on()
最近打算学习ssm框架 Mybatis 作为入门的第一个持久层框架,学习起来实在费劲。故写此文章作为入门案例。
先打开 IDEA建立一个Maven项目,目录结构如下:
源代码已经上传至GitHub https://github.com/Wo-com/mybatis_demo,需要的点击下载
接下来说几个要点吧:
1、用mysql创建test数据库,添加一张user表,字段如下:
2、编辑 pom.xml 文件导入 jar包
<?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.cnetopro</groupId> <artifactId>mybatis_mysql</artifactId> <version>1.0</version> <packaging>jar</packaging> <dependencies> <!-- 使用mybatis 导入前两个就行了--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.17</version> </dependency> <!--单元测试--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> </project>
3、创建 User实体类 和 IUserDao接口
User实体类对于的是数据库的字段,然后添加Setter和Getter方法和toString方法
package com.cnetopro.domain; import java.io.Serializable; public class User implements Serializable { private Integer id; private String name; private Integer age; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "User{" + "id=" + id + ", name=‘" + name + ‘\‘‘ + ", age=" + age + ‘}‘; } }
IUserDao接口里面有一个查询查询方法
package com.cnetopro.dao; import com.cnetopro.domain.User; import java.util.List; /** * * 用户持久层接口 * * */ public interface IUserDao { /** * 查询所有 * */ List<User>findAll(); }
4、创建 IUserMapper.xml 里面写sql语句
<?xml version="1.0" encoding="UTF-8" ?> <!-- mapper 约束--> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace 写的是 dao权限类名--> <mapper namespace="com.cnetopro.dao.IUserDao"> <!--配置查询所有--> <select id="findAll" resultType="com.cnetopro.domain.User"> select * from user </select> </mapper>
5、创建 SqlMapConfig.xml 配置数据库驱动,映射Mapper文件
<?xml version="1.0" encoding="UTF-8" ?> <!-- configuration 约束--> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <!--mybatis的主配置文件--> <configuration> <!-- 配置环境 --> <environments default="mysql"> <!--配置mysql环境--> <environment id="mysql"> <!-- 配置事务类型 --> <transactionManager type="JDBC"></transactionManager> <!-- 配置数据源(连接池) --> <dataSource type="POOLED"> <!-- 配置连接数据库的基本信息 --> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="zgx1734475W"/> </dataSource> </environment> </environments> <!--指定映射配置文件的位置,映射配置文件指的是每个dao配置的文件--> <mappers> <!-- 使用的是xml--> <mapper resource="com/cnetopro/dao/IUserMapper.xml"/> <!-- <mapper class="com.cnetopro.dao.IUserMapper"/> <!–使用的是注解 annotations–>--> </mappers> </configuration>
6、创建测试类 MybatisTest.java
package com.cnetopro.test; import com.cnetopro.dao.IUserDao; import com.cnetopro.domain.User; 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 java.io.InputStream; import java.util.List; /** * */ public class MybatisTest { public static void main(String[] args) throws Exception { //1.读取配置文件 InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml"); //2.创建SqlSessionFactory工厂 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory factory = builder.build(inputStream); //3.使用工厂创建SqlSession SqlSession session =factory.openSession(); //4.使用SqlSession创建dao接口的代理对象 IUserDao userDao =session.getMapper(IUserDao.class); //5.使用代理对象的方法 List<User> users = userDao.findAll(); for (User user:users ) { System.out.println(user); } //6.释放资源 session.close(); inputStream.close(); } }
运行测试类效果如下:
标签:有一个 bad for ash prope 代理 driver mysq on()
原文地址:https://www.cnblogs.com/easyidea/p/11647898.html