executeQuery()没有参数
先学一遍 “JDBC之对岸的女孩看过来”
现在可以用Navicat Premium 15
jdbcUrl 上关闭ssl useSSL=false
如上图所示
CallableStatement cs = conn.prepareCall("call first_select_count(?)"); 这里的?我的理解是用来占位的,用来接受返回结果
存储过程 是在数据库内已经写好了功能 直接调用就好了 比如 在数据库写好了一个a+b的功能 (a,b是入参,c是出参),jdbc直接调用这个功能 把ab两个值传入就可以得到返回的结果c 不需要再写代码了
dao中是对基础数据的简单控制,一般来说就是crud四大类的数据库操作。
service中是通过调用dao中crud并加上相同复杂的逻辑之后,整合成的具有实际意义的业务操作。
如果你非要和mvc模型一一对应的话,dao层和service层都属于模型层(model)。
像我们这样处于语法学习阶段的新手,实现是一位的,多动手、多模仿,慢慢会形成自己的理解。mvc都是前辈们的编码经验,既然经验就不要语法那样非对即错,只要你的整个工程代码看起来合理有序即可。
以上所言都是自己的理解,希望对你有所帮助。谢谢你的私信。
方法一:用鼠标选中你的需要插入的代码,然后在代码语言下拉框中选择语言类型
方法二:先在代码语言下拉框中选择语言类型,然后编写你需要插入的代码
通过以上两种方法,发布之后,代码就会显示相应的效果。
他也是只在这个con取作用
把你相关的java的代码贴出来一下
DBCP
下载地址:http://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi
相关属性说明: http://commons.apache.org/proper/commons-dbcp/configuration.html
c3p0
问题解决了,我是用mysql可视化软件创建的数据库,创建数据表的时候数据库引擎默认用的是MyISAM不支持事务,要改成InnoDB才行,大家别和我犯一样的的错误
我觉得可能是因为sql语句中字符串是用的单引号 而String定义的变量是双引号括起来的 看看那个方法的代码
imooc这个用户不存在
两种解决方法:
创建一个imooc用户
把imooc换成root就行了
public Goddess get(Integer id) {
Goddess goddess = new Goddess();
try {
pmpt = conn.prepareStatement("select username,sex,age from imooc_goddess where id = ?");
pmpt.setInt(1,id);
rs = pmpt.executeQuery();
while(rs.next()){
goddess.setUsername(rs.getString("username"));
goddess.setSex(rs.getString("sex"));
goddess.setAge(rs.getInt("age"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return goddess;
}
把你的语句粘出来
不是提示你了吗,你写的是adn 应该是and
直接获取连接较慢,创建连接和关闭连接所用的时间比在连接池在获取连接和归还连接所有的时间要多
MySQL储存过程的具体实现在于 SQL语句的执行。
jdbc通过连接类com.mysql.jdbc.Driver连接到MySQL,然后执行SQL语句;即实现了储存过程。
Navicat是MySQL可视化工具,在Navicat中创建的储存过程会直接映射到MySQL中。
至于为什么可以jdbc可以调用到,是因为jdbc连接着MySQL。
具体的机制(个人理解):应该是数据同步共享。
报错
1111
支持一下。虽然没有看懂你要表达的意思!
看不清楚具体是什么,但是大致是说你sql语句敲错了