新手如何开始学习mybatis呢?大家更多是查看官网进行学习吧,可能遇到会遇到很多问题,今天小编带大家进入mybatis的世界,让我们一起来了解下吧。
什么是mybatis?
MyBatis是支持普通SQL查询,是存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。MyBatis可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的java对象)映射成数据库中的记录。
创建Mybatis项目
1、使用Idea创建一个maven项目,依赖包内容如下
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.4</version> </dependency> </dependencies>
2、创建Mybatis配置文件
使用Idea集成开发环境,可以下载Mybatis plugin,然后可更好的使用mybatis。
新建Mybatis配置文件
项目文件内容
1、在resource目录下增加mybatis-config.xml文件,内容如下
<?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> <properties> <property name="jdbc.driver" value="com.mysql.jdbc.Driver" /> <property name="jdbc.user" value="aihe" /> <property name="jdbc.pass" value="123456" /> <property name="jdbc.url" value="jdbc:mysql://localhost:3306/test" /> </properties> <settings> <!-- Globally enables or disables any caches configured in any mapper under this configuration --> <setting name="cacheEnabled" value="true"/> <!-- Sets the number of seconds the driver will wait for a response from the database --> <setting name="defaultStatementTimeout" value="3000"/> <!-- Enables automatic mapping from classic database column names A_COLUMN to camel case classic Java property names aColumn --> <setting name="mapUnderscoreToCamelCase" value="true"/> <!-- Allows JDBC support for generated keys. A compatible driver is required. This setting forces generated keys to be used if set to true, as some drivers deny compatibility but still work --> <setting name="useGeneratedKeys" value="true"/> </settings> <!--便于后面解析对象--> <typeAliases> <package name="me.aihe" /> </typeAliases> <!-- Continue going here --> <environments default="dev"> <environment id="dev"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.user}" /> <property name="password" value="${jdbc.pass}" /> </dataSource> </environment> </environments> <mappers> <mapper resource="BlogMapper.xml" /> </mappers></configuration> 2、 在resource目录下增加BlogMapper.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="me.aihe.dao.BlogMapper"> <select id="selectBlog" resultType="me.aihe.Blog"> select * from Blog where id = #{id} </select> <insert id="insertBlog" parameterType="Blog"> insert into Blog (id,title) values (#{id},#{title}) </insert> <update id="updateBlog" parameterType="Blog"> UPDATE Blog SET title=#{title} WHERE id=#{id} </update> <delete id="deleteBlog" parameterType="integer"> DELETE FROM BLOG WHERE id=#{id} </delete></mapper>
2、在resource目录下增加BlogMapper.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="me.aihe.dao.BlogMapper"> <select id="selectBlog" resultType="me.aihe.Blog"> select * from Blog where id = #{id} </select> <insert id="insertBlog" parameterType="Blog"> insert into Blog (id,title) values (#{id},#{title}) </insert> <update id="updateBlog" parameterType="Blog"> UPDATE Blog SET title=#{title} WHERE id=#{id} </update> <delete id="deleteBlog" parameterType="integer"> DELETE FROM BLOG WHERE id=#{id} </delete></mapper>
3、新建Blog对象
package me.aihe; public class Blog { int id; String title; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } @Override public String toString() { return "Blog{" + "id=" + id + ", title='" + title + ''' + '}'; } }
4、新建主文件,Tutorial.java,并进行测试。
5、Tutorial.java文件内容如下
package me.aihe; 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.Random; public class Tutorial { public static void main(String[] args) { SqlSession sqlSession = null; try { InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder() .build(inputStream); // 查询数据库内容 sqlSession = sqlSessionFactory.openSession(); Blog blog = sqlSession.selectOne("me.aihe.dao.BlogMapper.selectBlog", 1); System.out.println(blog); // 插入数据库内容 Blog b = new Blog(); b.setTitle("Insert Value" + new Random() .nextInt(1000)); int row = sqlSession.insert("me.aihe.dao.BlogMapper.insertBlog", b); System.out.println(row); sqlSession.commit(); // 更新数据库内容 b.setId(2); row = sqlSession.update("me.aihe.dao.BlogMapper.updateBlog", b); System.out.println(row); sqlSession.commit(); //删除数据库内容 row = sqlSession.delete("me.aihe.dao.BlogMapper.deleteBlog", 1); System.out.println(row); sqlSession.commit(); } catch (IOException e) { e.printStackTrace(); } finally { if (sqlSession != null) { sqlSession.close(); } } } }
以上就是今天所讲的内容,更多想要了解Java常见问答的相关内容,请继续关注本网站。
推荐文章: