java 代码
- /*
- * hibernate中使用 sql语句
- */
- public void TestSQL(){
- String sql = "select * from user";
- Session session = factory.openSession();
- //这里使用的是SQLQuery
- SQLQuery sqlQuery = session.createSQLQuery(sql);
- //用addEntity方法将表和类对应起来,这样可以以类的方式来操作表
- sqlQuery.addEntity("user",User.class);
- List<user></user> users = sqlQuery.list();
- for(User user : users){
- System.out.println(user.getName());
- System.out.println(user.getAge());
- System.out.println("---------------");
- }
- session.close();
- }
- /*
- * 同样也可以通过将sql 语句写到文件当中
- * 与hql 的方式有一点不一样,
- * 如果要以对象的方式操作表,那么需要在配置文件中做
- * 表和类的对应
- */
- public void testSQL1(){
- Session session = factory.openSession();
- //这里仍然用的Query,
- Query query = session.getNamedQuery("hello");
- List<user></user> users = query.list();
- for(User user : users){
- System.out.println(user.getName());
- System.out.println(user.getAge());
- System.out.println("------------------");
- }
- session.close();
- }
<!--
这里将sql语句写到配置文件当中,名字是可以随便取的
不同于hql的是用的sql-query
而且将类和表之间对应起来
u这里是user的别名
-->
这里将sql语句写到配置文件当中,名字是可以随便取的
不同于hql的是用的sql-query
而且将类和表之间对应起来
u这里是user的别名
-->
xml 代码
- <hibernate-mapping>
- <class name="org.tie.User" table="user" catalog="tie">
- <id name="id" type="long">
- <column name="id" />
- <generator class="native" />
- </id>
- <property name="name" type="string">
- <column name="name" length="45" not-null="true" />
- </property>
- <property name="age" type="integer">
- <column name="age" not-null="true" />
- </property>
- <property name="addr" type="string">
- <column name="addr" length="45" not-null="true" />
- </property>
- </class>
- <sql-query name="hello">
- select {u.*} from user u
- <return alias="u" class="org.tie.User"></return>
- </sql-query>
- </hibernate-mapping>