执行 sql 查询到条数,但是不能返回到正确的类型,最后我要返回的 是 sql 查询到的
值,用的 ssh 求助
private int getsnum (String user) {
String sql = "SELECT COUNT(user) FROM `tb_basicuser`";
//这里用什么方法可以获取 sql 查询的值
int tempcount = sql.???;
return tempcount;
}
Statement stm = null;
DataBaseConn con = new DataBaseConn();
private int getsnum (String user) {
String sql = "SELECT COUNT(user) FROM tb_basicuser
";
stm = con.getMssqlConn().createStatement();
int tempcount = stm.executeQuery("sql ");
return tempcount;
}
sql.???前面加一个转化为int型的函数试试
Connection conn = null;
ResultSet rs = null;
PreparedStatement ps = null;
int tempcount = 0;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, password);
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
tempcount = rs.getInt(1);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
前面加一个转化为int型的函数试试
private int getsnum (String user) {
int tempcount=0;
Connection con = null;
Statement ps = null;
ResultSet rs = null;
String sql = "SELECT COUNT(user) FROM `tb_basicuser`";
con = 连接数据库;
ps = con.createStatement();
rs = ps.executeQuery(sql);
while (rs.next()) {
tempcount=rs.getInt("user")
}
return tempcount;
}
大概就是这样,你试下
Connection conn = null;
ResultSet rs = null;
PreparedStatement ps = null;
int tempcount = 0;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, password);
ps = conn.createStatement();
rs = ps.executeQuery(sql);
tempcount = rs.getInt(1);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
Connection conn = null;
ResultSet rs = null;
PreparedStatement ps = null;
int tempcount = 0;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, password);
ps = conn.createStatement();
rs = ps.executeQuery(sql);
tempcount = rs.getInt(1);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
返回的是List?那泛型应该是Long,之后List<Long> = ....; list.intValue();
用Integer.paseInt()方法不就可以转化为int 类型了么
返回的是List?那泛型应该是Long,之后List = ....; list.intValue();
count返回的肯定是int型的,不会是结果集,你可以装一个sql的客户端,对于不确定的sql语句可以现在客户端验证一下
Connection conn = null;
ResultSet rs = null;
PreparedStatement ps = null;
int tempcount = 0;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, password);
ps = conn.createStatement();
rs = ps.executeQuery(sql);
tempcount = rs.getInt(1);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
private int getsnum (String user) {
String sql = "SELECT COUNT(user) FROM tb_basicuser
";
//这里用什么方法可以获取 sql 查询的值
int tempcount = int(sql[0][0]);
return tempcount;
}
sql.???前面加一个转化为int型的函数试试
查询之后,获取的数据转换为int类型就行
http://www.yiibai.com/hibernate/one-to-one-mapping-by-one-to-one.html
参考这个试试。
Connection conn = null;
ResultSet rs = null;
PreparedStatement ps = null;
int tempcount = 0;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, password);
ps = conn.createStatement();
rs = ps.executeQuery(sql);
tempcount = rs.getInt(1);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
Statement stm = null;
DataBaseConn con = new DataBaseConn();
private int getsnum (String user) {
String sql = "SELECT COUNT(user) FROM tb_basicuser";
stm = con.getMssqlConn().createStatement();
int tempcount = stm.executeQuery("sql ");
return tempcount;
}
如果是某个值,可以用类型转换。
使用executeQuery();方法执行sql语句用int类型变量接收然后return 这个变量
@Override
public SQLQuery queryBySql(String sql) {
return getSession().createSQLQuery(sql);
}
private int getsnum (String user) {
//String sql = "SELECT COUNT(user) FROM `tb_basicuser`";
//这里添加 intcount
String sql = "SELECT COUNT(username) intcount FROM `tb_basicuser`";
int tempcount = (Integer) this.TempDao.queryBySql(sql.toString()).addScalar("intcount", Hibernate.INTEGER).uniqueResult();
System.out.println("数量 "+tempcount);
return tempcount;
}
public void pageQuery(PageBean pageBean) {
int currentPage = pageBean.getCurrentPage();
int pageSize = pageBean.getPageSize();
DetachedCriteria detachedCriteria = pageBean.getDetachedCriteria();
//总数据量----select count(*) from bc_staff
//改变Hibernate框架发出的sql形式
detachedCriteria.setProjection(Projections.rowCount());//select count(*) from bc_staff
List list = this.getHibernateTemplate().findByCriteria(detachedCriteria);
Long total = list.get(0);
pageBean.setTotal(total.intValue());//设置总数据量
detachedCriteria.setProjection(null);//修改sql的形式为select * from ....
//重置表和类的映射关系
detachedCriteria.setResultTransformer(DetachedCriteria.ROOT_ENTITY);
//当前页展示的数据集合
int firstResult = (currentPage - 1) * pageSize;
int maxResults = pageSize;
List rows = this.getHibernateTemplate().findByCriteria(detachedCriteria, firstResult, maxResults);
pageBean.setRows(rows);
}
public int selectByType(int type) {
// TODO Auto-generated method stub
//QBC查询
Criteria criteria=dao.getSession().createCriteria(News.class);
if(type>=0)
criteria.add(Restrictions.eq("type", type));//具体的查询条件是通过add()方法添加的,而且具体的查询条件的表达式运算是通过Expression或Restrictions指定的
criteria.setProjection(Projections.rowCount());//在Hibernate3中增加了Projections以及ProjectionList类,这两个类对分组与统计功能进行封装
//在获得Projection对象之后,使用setProjection()的方法将它添加到Criteria对象中,使用rowCount()查询记录总数
return ((Number) criteria.uniqueResult()).intValue();//总记录数
}
public int selectAll(int userid) {
// TODO Auto-generated method stub
Criteria criteria=dao.getSession().createCriteria(News.class);
if(userid>0)
criteria.add(Restrictions.eq("userId", userid));
criteria.setProjection(Projections.rowCount());
return ((Number) criteria.uniqueResult()).intValue();
}
这是我之前写的两个criteria查询返回整型的例子,你可以参考一下
用ResultSet来处理结果数据,whiler(rs.next){ int num = rs.getInt(); }
用object类对象来接,输出看看是什么东西,看能不能强制转换
从你这几代码完全看不出来你用的什么ORM框架