首先新建一个javaweb项目并导入mybatis依赖的jar包,同时mybatis是对数据库的操作所以我们需要在数据库中新建一个表user用来演示。
新建完表之后我们还需要建立相对应的实体类user.java并添加set和get方法:
public class user {
private string username;
private string password;
private int age;
public string getusername() {
return username;
}
public void setusername(string username) {
this.username = username;
}
public string getpassword() {
return password;
}
public void setpassword(string password) {
this.password = password;
}
public int getage() {
return age;
}
public void setage(int age) {
this.age = age;
}
}
在mybatis中我们需要建立一个与实体类相对应的映射文件usermapper.xml:
select * from user where username=#{username}
delete from user where username=#{username}
最后我们需要在src下新建一个mybatis与数据库连接的配置文件config.xml,并将上面的usermapper.xml导入,代码如下:
这里的配置数据库连接信息和hibernate差别不是很大,现在我们新建一个test类来测试一下:
public class test {
public static void main(string[] args) throws ioexception {
//mybatis的配置文件
string resource = config.xml;
//使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
inputstream is = test.class.getclassloader().getresourceasstream(resource);
//构建sqlsession的工厂
sqlsessionfactory sessionfactory = new sqlsessionfactorybuilder().build(is);
//打开session
sqlsession session = sessionfactory.opensession();
/**
* 映射sql的标识字符串
*com.mybatis.mapping.usermapper是usermapper.xml文件中mapper标签的namespace属性的值,
* getuser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的sql
*/
string statement = com.mybatis.mapping.usermapper.getuser;//映射sql的标识字符串
//执行查询返回一个唯一user对象的sql
user user = session.selectone(statement,username1);
system.out.println(user.getusername());
string statement2=com.mybatis.mapping.usermapper.deleteuser;
session.delete(statement2,user);
}
}
执行selectone方法会返回一个user对象(如果想要查询多条数据可以用selectlist,此方法会返回list的对象),我们在控制台输出user对象的username.执行delete方法可以直接将对象对应的一条数据删除,可以根据数据库中的变化来判断是否执行成功。下面是我的项目的目录,大家可以参考一下:
以上就是mybatis的一个简单示例,当然在usermapper.xml中我们还可以用ognl生成动态sql语句,感兴趣的可以自己研究一下。