Hoyi 与单数据库的读写(hoyi入门系列文章二)

Hoyi 与单数据库的读写    (hoyi入门系列文章二)

1.下载Hoyi ER Tool并生成实体类

设计实体并使用hoyi er tool 生成实体。

详细可查看 "Hoyi ER TOOL生成实体与web页面 "http://mp.blog.csdn.net/postedit/79374773


2.配置相关

在config文件夹里面新建jdbc.properties 增加对数据库的支持。jdbc.properties的内容如下:

jdbc_driverClassName=com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://127.0.0.1:3306/hoyidemo?useUnicode=true&characterEncoding=utf-8 // 数据库连接地址
jdbc_username=root   //改为对应数据库的账号

jdbc_password=root  //改为对应数据库的密码

注意:这是单数据库连接方式。

继续使用我们入门系列文章一的hoyidemo工程。在工程的WebRoot目录下新建demo2包,并建controller和entity包

将"Hoyi ER TOOL生成实体与web页面" 文章生成的user类拷贝到 entity包里。并在controller包里新建UserController类

3.编写逻辑

1.增加用户

在UserController 里面增加方法

@RequestMode(MODE = { RequestType.GET, RequestType.POST })
@PostParam(ENTITY = user.class)
public void addUser() {
            // hoyi 语法
user u = this.getModelFromReq(user.class);
int result = u.Insert();
this.WriteUTF8JSONDATAMSG(1, "success", 0);
}

u.Insert();是hoyi的语法,也可以使用sql语句

String sql = "insert into user (username,sex,note) values (?,?,?)";
String[] params = {u.getUsername(),u.getSex(),u.getNote()};

int result = DataBaseCluster.Get_WRITE_SERVER().execUpdateEx(sql, params);

测试,访问

http://localhost:8085/hoyidemo/demo2/controller/UserController.html?behavior=addUser&username=xiaoming&sex=1&note=nothing ,在数据库增加了一条数据则证明正确。

2.查询用户

@RequestMode(MODE = { RequestType.GET, RequestType.POST })
public void findUser() {
// hoyi 语法
String id = this.getParams("id");
user u = user.E().Where(user.id.Equals(id)).First();
this.WriteUTF8JSONDATAMSG(1, "success", u);
}

测试访问http://localhost:8085/hoyidemo/demo2/controller/UserController.html?behavior=findUser&id=1,可以在页面看到该用户。

3.有些场景数据库的更新需要使用到事务。在hoyi里事务的操作如下:

/**
* 增(事务操作)
*/
@RequestMode(MODE = { RequestType.GET, RequestType.POST })
public void insertTransaction() {
user u1 = new user("u1", "1", "note");
user u2 = new user("u2", "1", "note");
IDatabase database = DataBaseCluster.Get_Transaction_WRITE_SERVER();
database.InitAndOpenTransaction();
try {
u1.Insert(database);
int t = 1/0;  //设置一个异常,
u2.Insert(database);
database.Commit();
} catch (Exception e) {
// TODO Auto-generated catch block
database.RollBackTransaction(); //捕获异常,回滚
e.printStackTrace();
} finally {
database.CloseConnection(); //关闭连接
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值