数据库必然要准备好:
然后是相关依赖包:
<dependency><!--mybatis核心依赖-->
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version>
</dependency>
<dependency>
<!--mysql的驱动包-->
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
创建相关的类和资源文件:(类中的属性一定是要和数据库表中字段相对应的)
配置数据库连接信息:(mapper就是数据库访问层)
<?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/allstock"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- <mapper resource="StockMapper.xml"/>-->
<mapper class="cn.cdulm.mapper.UserMapper"/>
</mappers>
</configuration>
配置数据库查询语句:
<?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="cn.cdulm.mapper.UserMapper"> <!--如果绑定的是接口,那么就需要接口的完整限定名-->
<select id="selectUser" resultType="cn.cdulm.pojo.User">
select * from user where id = #{id}
</select>
</mapper>
第一种测试方法:
@Test
public void f() throws IOException {
String resource = "mybatis.xml"; // 配置文件路径
InputStream inputStream = Resources.getResourceAsStream(resource); // 输入流
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 获取session工厂
try(SqlSession session = sqlSessionFactory.openSession()){ // 获取session
User user = (User)session.selectOne("cn.cdulm.pojo.UserMapper.selectUser",1); // 查询的语句(配置文件中配置的namespace跟上配置的sql语句的id),查询的id参数
System.out.println(user);
}
}
查询结果:
第二种接口绑定的方法:
@Test
public void f2(){
try(SqlSession session = sqlSessionFactory.openSession()){ // 获取session
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.selectUser(1);
System.out.println(user);
}
}
需要注意的几点是:
1:<mapper>标签中需要写入对应接口完整限定名
2:namespace是接口完整限定名,id是接口中的方法,Mapper配置文件在编译后需要和接口处于同一目录下
查询结果:
增删改查的方法类似,都是xml中配置SQL语句,然后在接口中创建对应方法,然后获取mapper执行。
标签:
Mybatis
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)