首页 技术 正文
技术 2022年11月20日
0 收藏 306 点赞 4,240 浏览 3620 个字

1.首先在数据库中建立一张表

create table login(
name varchar(20) not null,
username varchar(20) not null,
password int not null,
type varchar(20) not null
)

2.配置mybatis-config.xml文件(即mybatis配置文件)

<?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><!-- <settings>-->
<!-- <setting name="LogImpl" value="log4j"/>-->
<!-- </settings>-->
<!--数据库环境配置,我用的是MySQL-->
<environments default="mysql">
<environment id="mysql">
<!--指定事务管理的类型-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据库连接源,username和password填本机的账号密码-->
<dataSource type="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/job"></property>
<property name="username" value="****"></property>
<property name="password" value="****"></property>
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="com/ys/mapper/UserMapper.xml"></mapper>
</mappers>
</configuration>

这里做几个说明:

<transactionManager type="JDBC"></transactionManager>

事务管理的方式有两种,一种是JDBC,它是直接使用了JDBC的提交和回滚机制,另一种是MANGED,是将事务的管理交付给容器来操作。(结合了spring后就不需要配置事务管理器了,之后SSM结合后再来补充)

<dataSource type="UNPOOLED">
  <property name="driver" value="com.mysql.jdbc.Driver"></property>
  <property name="url" value="jdbc:mysql://127.0.0.1:3306/job"></property>
  <property name="username" value="****"></property>
<property name="password" value="****"></property>
</dataSource>

这里没有使用数据库连接池,毕竟是个学习过程,项目不大用连接词反而影响效率,这里的url,username,password切记换成本地数据库的信息。

这里写代码时还有个小插曲,仅代表个人想法,如果有了解实际原因的大佬,多多赐教啦

<settings>
<setting name="LogImpl" value="log4j"/>
</settings>

这个我注释掉的代码是我在整合log4j时报错:Caused by: org.apache.ibatis.builder.BuilderException: The setting LogImpl is not known.  Make sure you spelled it correctly (case sensitive).

上网查到的原因说是mabtis的jar包过于老旧,换成3.2.7的就可以,可是我使用的jar包是3.4.2的,这里不知道为什么报错,反复尝试后我发现不用配置setting编译器好像会自动识别src目录下的log4j,不知道是不是mybatis在新版本将这个配置默认配置好了。

3.创建一个实体类User.java

package com.ys.pojo;public class User {
String name;
String username;
int password;
String type; @Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", username='" + username + '\'' +
", password=" + password +
", type='" + type + '\'' +
'}';
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public int getPassword() {
return password;
} public void setPassword(int password) {
this.password = password;
} public String getType() {
return type;
} public void setType(String type) {
this.type = type;
}
}

4.编写mapper映射文件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.ys.mapper.UserMapper"> <!--查询所有用户信息-->
<select id="getAllUser" resultType="com.ys.pojo.User">
select * from login ;
</select></mapper>

5.编写测试代码Test.java

package com.ys.test;import com.ys.pojo.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.IOException;
import java.io.InputStream;
import java.util.List;public class Test {
public static void main(String[] args) throws IOException {
String resource= "mybatis-config.xml";
//获取mybatis配置文件
InputStream is= Resources.getResourceAsStream(resource);
//实例化工厂对象(这里参考源码发现用构建者设计模式的好处是简化对象实例化过程)
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
//实例化SqlSession对象,开启与数据库的交互
SqlSession session=factory.openSession(); List<User> list=session.selectList("getAllUser");
for (User user:list){
System.out.println(user.toString());
} }}

就此,mybatis的基本使用方法如上。

如果您看了本篇博客,觉得对您有所收获,请点击右下角的 [推荐]
如果您想转载本博客,请注明出处!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,028
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,518
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,365
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,146
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,780
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,857