mybatis对数据库的增删改查
1.新建一个java项目,取名为Mybatis.
2.导入相关的mybatis和连接mysql的jar包
3.在src目录下,新建一个包存放映射文件和mybatis的配置文件。
①.新建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> <!--定义别名--> <typeAliases> <typeAlias alias="User" type="com.xjj.mybatis.entity.User"></typeAlias> </typeAliases> <!-- 配置数据源信息 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <!-- POOLED PooledDataSourceFactory 使用连接池的数据源 --> <!-- UNPOOLED UnpooledDataSourceFactory 不使用连接池的数据源 --> <!-- JNDI JndiDataSourceFactory 使用JNDI实现的数据源 --> <!-- type=”POOLED” MyBatis会创建PooledDataSource实例 type=”UNPOOLED” MyBatis会创建UnpooledDataSource实例type=”JNDI” MyBatis会从JNDI服务上查找DataSource实例 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/spring_test"/> <property name="username" value="root"/> <property name="password" value="112233"/> </dataSource> </environment> </environments> <!-- 配置数据库厂商标识 可省略 --> <databaseIdProvider type="DB_VENDOR"> <property name="MySQL" value="mysql"/> </databaseIdProvider> <!-- 配置sql映射 --> <mappers> <mapper resource="com/xjj/mybatis/mapper/user.xml"></mapper> </mappers> </configuration>
②.新建一个实体类的映射文件,user.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.xjj.mybatis.entity.User"> <!-- 通过id查询 resultType="user" 因为之前已经命名过别名了 --> <select id="getUserInfoById" parameterType="int" resultType="com.xjj.mybatis.entity.User"> select * from userInfo where id = #{id} </select> <!--parameterType="User"是在mybatis_config.xml的typeAliases定义的别名--> <insert id="insertUser" parameterType="User" statementType="PREPARED" keyProperty="id" useGeneratedKeys="true"> insert into userInfo (username,password) values (#{username},#{password}) </insert> <update id="updateUser" parameterType="User"> update userInfo set username=#{username},password=#{password} where id=#{id} </update> <delete id="deleteUser" parameterType="int"> delete from userInfo where id = #{id} </delete> </mapper>
4.新建一个实体类User,属性与数据库的属性一致。
public class User { //id private Integer id; /** *用户名 */ private String username; /** *密码 */ private String password; public User(String username, String password) { this.username = username; this.password = password; } public User() { } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } 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; } }
5.新建一个测试类,测试对数据库的增删改查,代码如下:
public class TestSql { public static void main(String[] args){ String resources = "com/xjj/mybatis/mapper/mybatis_config.xml"; Reader reader = null; SqlSession session; try { reader = Resources.getResourceAsReader(resources); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader); session = sqlMapper.openSession(); try{ //1.查询第号为1的用户信息。 User user = session.selectOne("getUserInfoById",1); System.out.println("用户名:"+user.getUsername()+",密码:"+user.getPassword()); //2.插入 User user1 = new User(); user1.setUsername("xjj"); user1.setPassword("123"); //第一个参数是在映射文件定义的sql的id,第二个是对象 session.insert("insertUser",user1); session.commit(); System.out.println("插入成功!!"); //修改id为2的信息 User user2 = new User(); user2.setUsername("小许"); user2.setPassword("666"); user2.setId(2); session.update("updateUser",user2); session.commit(); //删除 session.delete("deleteUser",1); session.commit(); System.out.println("删除成功"); }catch (Exception e){ e.printStackTrace(); }finally { session.close(); } } }
6.在mysql新建一个数据库spring_test,新建一个表userInfo
7.整个项目的结构图:
8.总结:刚开始学,希期待以后进一步深入了解。