已经在mybatis中建立了User这一实体类。如果用User.xml,则需要在mybatis-config.xml中写上<mapper resource="com/mybatis/pojo/User.xml"/>。如果有其他实体类,则对应每一个都需要进行这样的配置。
以下是注解方式实现对某个实体类对象数据的增删查改。
1.新建com.mybatis.mapper
在下面新建User实体类对应的接口,UserMapper.java。在其中声明各种方法,并加以注解。
package com.mybatis.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.mybatis.pojo.User;
public interface UserMapper {
@Insert(" insert into user_ (name,usercode) values(#{name},#{usercode})")
public int add(User user);
@Delete("select * from user_ where id = #{id}")
public void delete(int id);
@Update("update user_ set name=#{name} , usercode=#{usercode} where id = #{id}")
public int update(User user);
@Select("select * from user_")
public List<User> list();
@Select("select * from user_ where id = #{id}")
public User get(int id);
}
值得注意的是update方法对应的注解语句,要对user对象的两个或多个属性进行值的设置。我最先写的sql语句是
update user_ set name = #{name} and usercode = #{usercode} where id = #{id}。这样的话最终运行报错Truncated incorrect DOUBLE value。sql语句有误,and应该改为“,”。
2.修改mybatis-config.xml中对UserMapper 的配置
用user.xml的话,配置方式为<mapper resource="com/mybatis/pojo/User.xml"/>
如果使用UserMapper接口并进行注解,配置方式为<mapper class="com.mybatis.pojo.UserMapper.class"/>
3.编写测试类。。。(
package com.mybatis;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
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 com.mybatis.mapper.UserMapper;
import com.mybatis.pojo.User;
public class test2 {
public static void main(String[] args) throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session=sqlSessionFactory.openSession();
UserMapper mapper = session.getMapper(UserMapper.class);
//List<User> us=session.selectList("listUser");
//for (User u : us) {
//System.out.print(u.getName()+"\t"+u.getUsercode());
//}
update(mapper);
listAll(mapper);
session.commit();
session.close();
}
private static void add(UserMapper mapper){
User u = new User();
u.setName("serenity");
u.setUsercode("180923002");
mapper.update(u);
listAll(mapper);
}
private static void listAll(UserMapper mapper){
List<User> us =mapper.list();
for(User u:us){
System.out.println(u.getName()+"\t"+u.getUsercode());
}
}
private static void delete(UserMapper mapper){
mapper.delete(3);
listAll(mapper);
}
private static void update(UserMapper mapper){
User u = mapper.get(2);
u.setName("serenity");
u.setUsercode("180923101");
mapper.update(u);
}
}
最后就可以在控制台看到输出结果了。。。
tom123 180923001
serenity 180923101