Mybatis基础使用方法
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的基本使用方法如上。
如果您看了本篇博客,觉得对您有所收获,请点击右下角的 [推荐]
如果您想转载本博客,请注明出处!