#{}相当于对数据 加上 双引号,${}相当于直接显示数据
{}方式能够很大程度防止sql注入,${}方式无法防止Sql注入。
先看一下项目整体
第一步:添加jar包,如果使用maven或是gradle构建项目,那么就不要了,去配置依赖关系
第二步:创建一个数据库喽,新建user表
create database mybatis;
use mybatis;
create table users (
id int primary key auto_increment,
name varchar(20),
age int
);
insert into users(name,age) values('剑圣',27) ;
insert into users(name,age) values('盖伦',30);
第三步:建立实体类,和数据库对应啦
package com.domain;
public class User {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
第四步:建立接口userMapper (mybatis面向接口,编程,而接口不需要写实现,屌不屌)
第五步:建立userMapper.xml文件
第六步:配置mybatis管理数据库
最后一步:跑起我们的程序
package com.test;
import com.domain.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.InputStream;
public class Test1 {
public static void main(String[] args){
//mybatis配置文件
String resource="resources/conf.xml";
//使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)
//Reader reader = Resources.getResourceAsReader(resource);
//构建sqlSession的工厂
//SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
//创建能执行映射文件中sql的sqlSession
//使用类加载器加载mybatis配置文件(它也加载关联的映射文件)
InputStream is=Test1.class.getClassLoader().getResourceAsStream(resource);
//构建sqlSession工厂
SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(is);
SqlSession session=sessionFactory.openSession();
/**
* 映射sql的标识字符串,
* com.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
* getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
*/
//在命名空间“com.mapping.userMapper”中定义了一个名为“getUser”的映射语句,
//这样它就允许你使用指定的完全限定名“com.mapping.userMapper.getUser”来调用映射语句,
//格式:命名空间名(namespace)+映射语句名(id)
String statement="com.mapping.userMapper.getUser";//映射SQL的标识字符串
//执行查询返回一个唯一的user对象的SQL
User user=session.selectOne(statement,2);
System.out.print(user);
}
}