myBatis初学经验----(1)
2024-08-29 19:54:46
Java常用的三种编写模式 Spring,SpringMVC,myBatis。
myBatis(原名:iBatis):
开源的ORM(持久层)框架,之前为apahce旗下顶级开源项目,后转到google,变为myBatis.目前代码库:http//github.com/mybatis/mybatis-3/releases
myBatis 主要让软件工程师的精力放在sql上,通过myBatis提供的映射方式,可以自由的将数据映射为javaBean对象。
myBatis配置和使用:
- 引入jar包
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency>
2.创建配置文件
首先建立Mapper.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.xt.mybatis"> <!-- statementId=namespace+queryAnimalInfoBySid 属性ID:标示映射文件中的sql的唯一性,ID被称为statementId 属性 parameterType: 入参参数类型 属性resultType:输出结果类型,表示单条数据记录映射成的javaBean #{value} 表示预处理,代表占位符 ${value} 表示sql字符串的拼接,将结束到的数据不加任何修饰拼装到sql中。 --> <select id="queryAnimalInfoBySid" parameterType="string" resultType="com.xt.mybatis.hello.Animal.entity.Animal"> select * from animal where SID=#{sid} </select> <insert id="insertAnimal" parameterType="com.xt.mybatis.hello.Animal.entity.Animal"> insert into animal vaules (#{sid},#{name},#{kind},#[number},#{addrss}) </insert> <delete id="deleteAnimal" parameterType="string"> delete from animal where SID=#{sid} </delete> <update id="updateAnimal" > update animal set Name=#{name},Kind="kind", Number =#{number},Address=#{address} where SID=#{sid} </update> </mapper>
然后建立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> <environments default="xtEnvironment"> <environment id="xtDevelopment"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/bookshop"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <mappers> <!-- 引入Mapper文件 --> <mapper resource="mybatis/mapper/userMapper.xml"/> </mappers> </configuration>
在编写这个文件时,要确定数据的正确性。还有,你要进行操作的表存在,否则先建表。再在工程中建立对应的实体对象,getter,setter和To String方法是必不可少的。
- 创建java类,保存将要测试方法。(这是基础性的运用方法,后继博客中会有更好的方法)
package com.xt.mybatis.hello.Animal.entity; import java.io.IOException; 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 org.junit.Before; import org.junit.Test; public class myBatisTest { SqlSessionFactory ssf = null; SqlSession ss = null; @Before public void Init(){ try { ssf = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis/mybatis-config.xml")); ss = ssf.openSession(); } catch (IOException e) { e.printStackTrace(); } } @Test public void queryAnimalInfoBySid() throws IOException{ //创建SqlsessionFactory通过资源加载器加载配置文件 Animal animal = ss.selectOne("statementId ","数据"); System.out.println("=========="+animal); } @Test public void insertAnimal(){ Animal al = new Animal(); al.setSid("数据"); al.setName("数据"); al.setKind("数据"); al.setNumber(数据); al.setAddress("数据"); int i = ss.insert("statementId ",al); ss.commit(); System.out.println("========insert=========="+i); } @Test public void deleteAnimal(){ int affectedRowNo = ss.delete("statementId ","数据"); ss.commit(); System.out.println("===========delete========="+affectedRowNo); } @Test public void updateAnimal(){ Animal am = new Animal(); am.setSid("1801"); am.setName("数据"); am.setKind("数据"); am.setNumber(数据); am.setAddress("数据"); int i = ss.update("statementId ",am); ss.commit(); System.out.println("======update====="+i); } }
最新文章
- Linux程序包管理之yum及源代码安装
- 不要给<;a>;设置outline:none
- Javascript数组函数库
- MOOCULUS微积分-2: 数列与级数学习笔记 2. Series
- linux 操作mysql
- 【转】linux驱动程序中的并发控制
- listen和accept函数
- 宁波Uber优步司机奖励政策(1月18日~1月24日)
- 常用监控SQL
- haproxy hdr和path
- 【ArcGIS 10.2新特性】ArcGIS 10.2 for Desktop 新特性(一)
- Maven 浅谈一
- 《java入门第一季》之集合框架TreeSet存储元素自然排序以及图解
- 《Java》第六周学习总结
- Docker for Win10中文乱码问题
- 洛谷10月月赛II题解
- python访问互联网
- [转]python3之paramiko模块(基于ssh连接进行远程登录服务器执行命令和上传下载文件的功能)
- jQuery开发工具
- linux保存住github的账号和密码