-
查询条件用 List<Map<>> 来存储,使查询更加灵活,妙啊~
查看全部 -
查询一个女神是通过先实例化女神的空对象,再用该女神在数据库中的属性去填充空女神的属性得到一个和数据库中的记录女神一样的女神对象,最后返回这个饱满的女神。
查看全部 -
java.sql.Date 是 java.util.Date 的子集,因此从 java.sql.Date 到 java.util.Date 不需要进行类型转换
查看全部 -
SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范(接口),称之为JDBC。这套接口由数据库厂商去实现,这样,开发人员只需要学习jdbc接口,并通过jdbc加载具体的驱动,就可以操作数据库。
查看全部 -
JDBC连接数据库查看全部
-
Establishing SSL connection without server's identity :
solution:jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false
查看全部 -
Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(URL, USER , PRSSWORD); Statement stat = conn.createStatement(); ResultSet rs = stat.executeQuery("select * from goddess"); while (rs.next()){ System.out.println(rs.getString("user_name")+","+rs.getInt("age")); }
查看全部 -
搭建视图层
查看全部 -
搭建控制层
查看全部 -
PreparedStatement ptmt = conn.prepareStatement(sql); ... ptmt.execute();//预编译sql语句,执行该语句时才会生效
sql语句中 使用 ?做占位符。
sql语句中 可以current_data()等语句
查看全部 -
JDBC的使用
//1.加载驱动程序 Class.forName(dirverClass); //2.连接数据库 Connection conn = DriverManager.getConnection( "jdbc:mysql://127.0.0.1:3306/imooc", "root","root"); //3.创建Statement对象,使用该对象执行SQL语句 Statement stmt = conn.createStatement(); ResultSet rs = stmt.excuteQuery("SELECT ..."); while(rs.next()) { ...rs.getString("user_name")...rs.getInt("user_id")... }
查看全部 -
like用于模糊查询
通配符“%”代表任意长的多个字符,“_”代表任意1个字符
List<Map<String,Object>>
List集合中存放Map集合,而这个Map对象的键是String类型,值是Object类型
sql语句:通过append追加,(" and "+map.get("name")+" "+map.get("rela")+" "+map.get("value")+" "),即查询条件+关系(=、>、like)+值,这样就比较自主。
技巧:where 1=1
步骤:
//创建List集合实例
//得到访问数据库的连接对象实例
//创建StringBuilder对象实例
//向StringBuilder实例增加字符串
//对sql语句进行预编译
//进行sql语句的编译,并返回结果集
//定义一个Goddess对象类型
//通过得到的结果集对Goddess对象里的变量进行赋值
//创建一个Goddess对象
//赋值
//把Goddess对象添加到result集合中
//返回result集合,便于GoddessAction层调用Goddess层的get方法查看全部 -
ptmt.execute();//executeecute()是用于更改数据库的操作,包括新增、修改和删除
executeQuery()用于查询操作
查看全部 -
java.util.Date和java.sql.Date的区别和相互转化
一、共同点:
都有getTime方法返回毫秒数,可以直接构建
二、不同点:
1、java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分,一般在读写数据库的时候用,PreparedStament的setDate()的参数和ResultSet的getDate()方法的都是java.sql.Date
2、java.util.Date是在除了SQL语句的情况下面使用,一般是日常日期字段
3、java.util.Date 是 java.sql.Date 的父类,即:继承关系:java.lang.Object --》 java.util.Date --》 java.sql.Date
三、相互转化:
1.java.sql.Date转为java.util.Date
java.sql.Date date=new java.sql.Date();
java.util.Date d=new java.util.Date (date.getTime());
2.java.util.Date转为java.sql.Date
java.util.Date utilDate=new Date();
java.sql.Date sqlDate=new java.sql.Date(utilDate.getTime());
java.sql.Time sTime=new java.sql.Time(utilDate.getTime());
java.sql.Timestamp stp=new java.sql.Timestamp(utilDate.getTime());
四、这里所有时间日期都可以被SimpleDateFormat格式化format()
SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
f.format(stp);
f.format(sTime);
f.format(sqlDate);
f.format(utilDate)
java.sql.Date sqlDate=java.sql.Date.valueOf(" 2005-12-12");
utilDate=new java.util.Date(sqlDate.getTime());
另类取得年月日的方法:
import java.text.SimpleDateFormat;
import java.util.*;
java.util.Date date = new java.util.Date();
如果希望得到YYYYMMDD的格式SimpleDateFormat
sy1=new SimpleDateFormat("yyyyMMDD");
String dateFormat=sy1.format(date);
如果希望分开得到年,月,日SimpleDateFormat
sy=new SimpleDateFormat("yyyy");
SimpleDateFormat sm=new SimpleDateFormat("MM");
SimpleDateFormat sd=new SimpleDateFormat("dd");
String syear=sy.format(date);
String smon=sm.format(date);
String sday=sd.format(date);
查看全部 -
1.String sql="..."+"..."+"..."+"...",插入表+字段+values+占位符
2.执行sql语句:conn.prepareStatement();//预编译sql语句,prepareStatement()这个方法,将sql语句加载到驱动程序的执行程序中,在调用execute()方法时才真正执行。
3.“?”是占位符
4.给sql语句传递参数时,把对数据库进行映射的model里的那个类传进来,public void addGoddess(Goddess g) throws Exception{...};,再从g的这个对象获取数据,即ptmt.setString(1, g.getUser_name());这个下标是从1开始。
5.//ptmt.setDate(4, g.getBirthday());
//错误,当前的getBirthday是java.util.Date,而setDate需要的参数却是java.sql.Date
ptmt.setDate(4, new Date(g.getBirthday().getTime()));
6.create_date和update——date不需要前台写入,这是根据创建的时间决定的,所以直接在sql语句里将这个创建日期传入进去,即current_date()。
综上,新增的方法步骤为1.拿到数据库的连接;2.拼写sql语句;3.预编译;4.传参,给这些“?”预编译符去赋值;5.执行。
查看全部
举报