JDBC小项目后的犯错体会

博客记录了Java数据库开发中遇到的问题及解决方法。创建数据库和编写Java代码时,因表中日期字段名相同、变量名与表字段名不匹配等问题导致错误。最终发现德鲁伊jar包根据get和set方法识别映射,修改方法名解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目:浏览新闻

创建数据库

创建数据库要根据整个项目的需求来建库,不然就会跟我一样,不停的删表建表。
CREATE TABLE news(
	news_id int PRIMARY KEY auto_increment,
	news varchar(50) not null,
	detailedNews varchar(500),
	datetime varchar(30) DEFAULT '2018-07-14 10:11:09'
);

create table discuss(
	discuss_id int PRIMARY KEY auto_increment,
	talk varchar(50),
	talk_id int not null,
	datetime varchar(30) DEFAULT '2018-07-14 10:11:09',
	FOREIGN key(talk_id) references news(news_id) 
);
DROP table news;
DROP table discuss;
这是最终建表的语句,下面两行就是不停的删除,起码删了4到5次,haha:)

java代码部分

MVC基本的设计模式就不过多阐述了,毕竟这不是一个项目分享的博客,这里主要记录一下我自身犯下的错误。在上面建表的时候我把news表和discuss表中的日期datetime都取了一样的字段名,在写SQL语句的时候经常发生错误,于是我把discuss表中的日期改为date

这又引申出了另一个问题,先说现象再说结论。

现象:有的属性有值,有的属性无值,现实的是0或null。于是我把所有变量名都改的跟表中的字段名一毛一样,没什么X用。在这纠结了2个小时。
解决方法: 在德鲁伊的jar包中,他可以跟据你的变量名和数据库中表的字段名做一个基本的匹配例如userName它可以和表中user_name做出匹配,正如上面所言,我改了我的变量名却没有改我的get和set方法名,这个jar包的功能其实是根据这两个方法来识别映射的,而不是根据变量。

	public static<T> List<T> queryAllList(String sql, Class<T> clazz,Object... param ){
		try {
			BasicRowProcessor brp = new BasicRowProcessor(new GenerousBeanProcessor());
			return runner.query(sql, new BeanListHandler<T>(clazz,brp),param);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值