# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE debug info warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE
# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
实体类User
public class User implements Serializable {
private Integer id;
private String userName;
private Date userBirthday;
private char userSex;
private String userAddress;
public User() {
}
public User(Integer id, String userName, Date userBirthday, char userSex, String userAddress) {
this.id = id;
this.userName = userName;
this.userBirthday = userBirthday;
this.userSex = userSex;
this.userAddress = userAddress;
}
//添加Role类型集合属性 一对多
private List<Account> accounts;
public List<Account> getAccounts() {
return accounts;
}
public void setAccounts(List<Account> accounts) {
this.accounts = accounts;
}
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 Date getUserBirthday() {
return userBirthday;
}
public void setUserBirthday(Date userBirthday) {
this.userBirthday = userBirthday;
}
public char getUserSex() {
return userSex;
}
public void setUserSex(char userSex) {
this.userSex = userSex;
}
public String getUserAddress() {
return userAddress;
}
public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", userName='" + userName + '\'' +
", userBirthday=" + userBirthday +
", userSex=" + userSex +
", userAddress='" + userAddress + '\'' +
'}';
}
}
实体类Account
public class Account implements Serializable {
private Integer id;
private Integer uid;
private Double money;
/**
* 查询账户信息,同时得到对应的用户信息
* 多个账户属于一个用户(一个账户只能属于一个用户)
* 多对一查询(一对一查询)
* Account类中包含一个User类型的属性
*/
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public Double getMoney() {
return money;
}
public void setMoney(Double money) {
this.money = money;
}
@Override
public String toString() {
return "Account{" +
"id=" + id +
", uid=" + uid +
", money=" + money +
'}';
}
}
dao层UserDao
@CacheNamespace(blocking = true)//使用二级缓存
public interface UserDao {
@Results(id = "userMap",value = {
@Result(id = true,column = "id",property = "id"),
@Result(column = "username",property = "userName"),
@Result(column = "birthday",property = "userBirthday"),
@Result(column = "sex",property = "userSex"),
@Result(column = "address",property = "userAddress"),
@Result(column = "id",property = "accounts",
//一对多用many
many = @Many(select = "cn.yh.dao.AccountDao.findById",fetchType = FetchType.LAZY))
})
@Select("select * from user")
List<User> findAll();
/**
* 根据id查询用户信息
* @param id
* @return
*/
@ResultMap("userMap")
@Select("select * from user where id=#{id}")
User findById(Integer id);
/**
* 添加用户
* @param user
*/
@Insert("insert into user values (null,#{userName},#{userBirthday},#{userSex},#{userAddress})")
@SelectKey(keyColumn = "id",keyProperty = "id",statement ={"select last_insert_id()"}, before = false, resultType = Integer.class)
void add(User user);
/**
* 修改用户
* @param user
*/
@Update("update user set username=#{userName},birthday=#{userBirthday},sex=#{userSex},address=#{userAddress} where id=#{id} ")
void update(User user);
/**
* 根据id删除用户
* @param id
*/
@Delete("delete from user where id=#{id}")
void delete(Integer id);
/**
* 根据姓名模糊查询
* @param s
* @return
*/
@ResultMap("userMap")
@Select("select * from user where username like #{userName}")
List<User> findByName(String s);
/**
* 查询有多少条数据
* @param user
* @return
*/
@Select("select count(id) from user")
int count(User user);
}