mybatis是一个orm框架,是半自动化的 在maven环境下,搭建mybatis环境
pom.xml文件
<?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.lin</groupId> <artifactId>MybatisDemo</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.29</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> </dependencies> </project>
接下来是我们mybatis的配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "--mybatisconfig--" "mybatis-3-config.dtd" > <configuration> <typeAliases> <!--你的bean文件,在mapper文件中有引用--> <typeAlias type="Model.User" alias="user" /> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"> </transactionManager> <!--连接池 --> <dataSource type="POOLED"> <!--连接数据库驱动 --> <property name="driver" value="com.mysql.jdbc.Driver" /> <!-- URL --> <property name="url" value="jdbc:mysql://localhost:3306/test" /> <!--用户名 --> <property name="username" value="root" /> <property name="password" value="123" /> </dataSource> </environment> </environments> <mappers> <!--引用你的mapper.xml文件 --> <mapper resource="mapper.xml" /> </mappers> </configuration>
接着是我们的映射文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "--mybatismapper--" "mybatis-3-mapper.dtd" > <mapper namespace="Mapper.UserMapper"> <select id="getUser" parameterType="long" resultMap="user"> select *from users where id = #{id} </select> --> <insert id="insertUser" parameterType="Model.User"> insert into users(id,username,age) values(#{id},#{username},#{age}) </insert> <delete id="deleteUserById" parameterType="Model.User"> delete from users where id=#{id} <!--#{id} 仅是个占位符,{}里面放啥都行 --> </delete> </mapper>
model类
package Model; public class User { private String username; private Integer age; private Integer id; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } }
接口
package DAO; import Model.User; import java.util.List; public interface IUserDao { void insertUser(User user); void deleteUserById(int id); void updateStudent(User user); List<User> selectAllUser(); User selectUserById(int id); List<User> selectStudentsByName(String name); }
接口实现类 也就数包括了mybatis怎么·操作数据库的 ,
package DAO; import Model.User; import Utils.MybitasUtils; 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 UserDAOImpl implements IUserDao { private SqlSession sqlSession; public void insertUser(User user) { try { //加载主配置文件 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); //创建sqlSessionFactory对象 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //创建sqlSession sqlSession = sqlSessionFactory.openSession(); //默认提交 在创建中使用的是false; //插入 默认没有提交 sqlSession.insert("insertUser", user); //增insert,删delete, 底层都是调用的update函数 sqlSession.commit(); } catch (IOException e) { e.printStackTrace(); } finally { if (sqlSession != null) { sqlSession.close(); } } } public void deleteUserById(int id) { } public void updateStudent(User user) { } public List<User> selectAllUser() { return null; } public User selectUserById(int id) { return null; } public List<User> selectStudentsByName(String name) { return null; } }